Solaris Resource Manager 1.1 のシステム管理

割当数 (shares)

ユーザーの cpu.shares 属性は、親と動作中のピアの間で CPU の使用権利を配分するときに使用します。ユーザーの cpu.myshares 属性は、そのユーザーに動作中の子ユーザーがあるときだけ意味があります。この属性は、これらの子ユーザーとの関係において CPU 使用権利の割合を決めるときに使用します。

たとえば、親 P に子 A と B があり、グループ P の中で P、A、B がそれぞれ割当を 1 ずつ持っているとします。つまり、A と B の cpu.shares に 1 を、P の cpu.myshares に 1 をそれぞれ設定します。この場合、P、A、B は、それぞれ CPU の使用権利としてグループの合計権利分の 3 分の 1 を持ちます。

したがって、ユーザーの実際の CPU の使用権利は、親の相対的な権利によって変わります。すなわち、親の権利は、親のピアの cpu.shares と親の親の cpu.myshares に対する親の cpu.shares の相対的な値によって変わります。このような関係は、スケジューリングツリーの上部方向に対しても同じです。

システム管理上の理由により、root l ノードに接続されたプロセスは shares 属性の影響を受けません。root l ノードに接続されたプロセスは、要求する CPU 資源をほとんど得ることができます。

CPU をかなり占有するプロセスを root l ノードに接続すると他のプロセスに顕著な影響が出るため避けてください。そのために、次の予防措置をとる必要があります。

スケジューリングツリーの必ずしもすべてのグループヘッダーが、プロセスを実行する実際のユーザーである必要はありません。このような場合には、CPU の割当数を与える必要がないので、この l ノードの cpu.myshares 属性をゼロにします。このようなグループヘッダーの CPU.accrue 属性にも、グループのすべてのメンバーに対する負担が加算されます。