ユーザーの 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 ノードに接続すると他のプロセスに顕著な影響が出るため避けてください。そのために、次の予防措置をとる必要があります。
中央のシステム管理者アカウントに、スーパーユーザーアカウントとは別の独自のユーザーID を設定します。管理目的以外の目的でログインする時には、このアカウントを使用します。管理機能を行うためにスーパーユーザーのユーザー ID が必要な場合には、中央のシステム管理者は、自分の l ノードに接続したまま su(1) コマンドを使ってユーザー ID を変更できます。
init.d(4) スクリプトで srmuser(1SRM) コマンドを使えば、デーモンプロセスを root 以外の l ノードに接続できます。起動スクリプトで起動したプロセスは、デフォルトで、実効ユーザー ID として root を持ち、root l ノードに接続されます。このユーザーコマンドでは、実効ユーザー ID が root のままデーモンを独自の l ノードに接続できます。このため、デーモンのどれかが CPU をかなり占有しても問題ありません。
スケジューリングツリーの必ずしもすべてのグループヘッダーが、プロセスを実行する実際のユーザーである必要はありません。このような場合には、CPU の割当数を与える必要がないので、この l ノードの cpu.myshares 属性をゼロにします。このようなグループヘッダーの CPU.accrue 属性にも、グループのすべてのメンバーに対する負担が加算されます。