Solaris Resource Manager 1.1 のシステム管理

srmadm による Solaris Resource Manager の大域パラメータ

管理者は、srmadm コマンドを使って Solaris Resource Manager 大域パラメータの設定、変更、および表示を行うことができます。各パラメータの詳細は、srmadm(1MSRM) のマニュアルページを参照してください。

さまざまなパラメータを設定する場合には、srmadm コマンドを何回でも呼び出すことができます。1 回の呼び出しですべての設定を指定する必要はありません。したがって、srmadm(1MSRM) を使用すれば、動作している Solaris Resource Manager システムの操作パラメータを動作中に変更できます。ただし、この場合には、注意が必要です。

次の srmadm のオプションは、管理者にとって特に重要です。このオプションでは、Solaris Resource Manager の主要機能を有効または無効にできます。

fileopen[={y|n}]

デフォルトデータベースは /var/srm/srmDB です。これは -f オプションで上書きできます。Solaris Resource Manager のデータベースファイルを操作中に閉じるのは、緊急のときだけにしてください。この場合、いくつかの望ましくない結果が生じます。すべてのプロセスが代理の root l ノードで動作を続けるため、プロセスは通常よりも多くの特権を与えられることがあります。SHR スケジューラが無効になり、Solaris Resource Manager の制限値の適用が停止されます。無効にした場合、Solaris Resource Manager のリミットデータベースは開かれず、キャッシュには代理の root l ノードだけが含まれ、そこにすべてのプロセスが接続されています。

share[={y|n}]

有効にすると、Solaris Resource Manager の SHR スケジューラが使用され、Solaris Resource Manager の動的な使用と減少のアルゴリズムに従って CPU スケジューリングが行われます。このモードを設定するためには、fileopen モードが有効になっていなければなりません。これを無効にすると、SHR スケジューラの使用量計算が停止され、プロセスは、固定の同一優先順位を使った「ラウンドロビン方式」でスケジューリングされます。

limits[={y|n}]

有効にすると、Solaris Resource Manager は仮想メモリーとプロセスの制限値を適用します。このモードを設定するためには、fileopen モードが有効になっていなければなりません。無効にすると、Solaris Resource Manager は最新の使用量属性を保持しますが、制限値は適用しません。

adjgroups[={y|n}]

有効にすると、Solaris Resource Manager の SHR スケジューラで大域グループの実効割当率が調整されます。ほとんどの状況では、できるだけ有効にしてください。実行間隔ごとに、すべてのリミットエントリの使用量が再計算されます。adjgroups スケジューリングモードを有効にすると、使用量の計算がさらに次のように行われます。スケジューラはスケジューリングツリーを調べ、各グループが新しく受け取った実効割当率をその権利分と比較します。権利分より少ない割当率を割り当てられたグループには、次の実行間隔でより多くの実効割当率を受け取れるようにします。この結果、そのグループは、メンバーのアクションとは関係なしに、可能な限り権利に相当する CPU サービスを受け取ります。

limshare[={y|n}]

有効にすると、SHR スケジューラは、優先順位上限機能を適用してすべてのユーザーの実効割当率を制限し、使用量が極端に少ないユーザーが短い間 CPU のほとんどすべてを獲得してしまうのを防ぎます。できるだけ有効にしてください。

ユーザーの CPU サービス率は、おおよそユーザーの使用量に反比例します。ユーザーが長い間動作していなければ、使用量の減少はほとんどありません。このユーザーがログインすると、次の実行間隔では、このユーザーのプロセスの優先順位が、CPU を占有するほど高くなることがあります。

limshare スケジューリングフラグを有効にすると、スケジューラは、次の実行間隔までに l ノードが受け取る実効割当率を推定します。この結果がユーザーに割り当てられた権利分よりもある係数 (maxushare を参照) だけ多いと、ユーザーの使用量は再調整されます。

srmadm には、管理者にとって便利なパラメータが 2 つあります。

一般的な srmadm コマンドの例を次に示します。

Solaris Resource Manager を有効にして SHR スケジューラと資源制限値を有効にするには、次のようにします。

# srmadm set -f /var/srm/srmDB fileopen=y:share=y:limits=y 

CPU 使用量の減少速度の半減期を 5 分にするには、次のようにします。

# srmadm set usagedecay=300s 

現在のフラグの設定値と負担を表示するには、次のようにします。

% srmadm 

すべてのデフォルトの設定値を表示するには、次のようにします。

% srmadm show -dv 

Solaris Resource Manager を無効にする

srmadm(1MSRM) コマンドで fileopen フラグをクリアすることによって Solaris Resource Manager を無効にできます。すべてのプロセスが代理の root l ノードに移され、キャッシュにある変更された l ノードがディスクにフラッシュされ、l ノードデータベースが閉じられます。これによって、share フラグと limits フラグが自動的に無効になり、その結果、SHR スケジューラと制限値の適用がそれぞれ無効になります。share フラグとlimits フラグは、必要なら、limits データベースが開いた状態のままで個別に無効にできます。この場合には、プロセスが適切な l ノードに接続されたままになるので、ファイルを閉じるよりも望ましい方法です。

操作中に Solaris Resource Manager のスケジューラだけを無効にしても、使用量と減少のアルゴリズムが中断されるだけです。スケジューラは、SHR スケジューリングクラスでプロセスの処理を続けます。しかし、各プロセスには更新された優先順位が割り当てられるので同じ値が使用されることになり、単純な「ラウンドロビン」スケジューリングが行われます。

ファイルが閉じられている状態でそのファイルを開いて、share フラグと limits フラグを設定して Solaris Resource Manager を再び有効にしても、既存のプロセスは root l ノードに接続されたままです。通常の操作で Solaris Resource Manager のデータベースを閉じることは避けてください。閉じた場合には、システムを再起動して、プロセスを適切な l ノードに接続する必要があります。