名前 | 形式 | 機能説明 | オプション | 動作モード | パラメータ | 使用例 | ファイル | 属性 | 関連項目 | 注意事項
srmadm コマンドは、Solaris Resource Manager の動作モードやシステム全体で調整可能なパラメータを表示または設定します。
オプションを指定しないで呼び出すと、srmadm は Solaris Resource Manager がシステムにインストールされているかどうかを報告します。
Solaris Resource Manager について、指定した動作モードの状態を表示します。指定したモードが有効であれば、srmadm は標準出力に yes を表示し、0 を返します。有効でなければ、srmadm は標準出力に no を表示し、1 を返します。
現在、リミットデータベースを開いています。
現在、SHR スケジューラは有効です。
現在、仮想メモリーとプロセスの制限機能は有効です。
現在、SHR スケジューラの階層型グループ分散機能は有効です。
現在、SHR スケジューラの優先順位上限設定機能は有効です。
-d オプションを指定すると、デフォルトのモード値が表示されます。
-i オプションを指定すると、モードの初期値が表示されます。初期値とは、Solaris Resource Manager の起動時に事前に設定されている固有の値です。
Solaris Resource Manager の現在の動作状態と主な構成パラメータについて、書式化されたレポートを出力します。
-d オプションを指定すると、モードとパラメータのデフォルト値が表示されます。
-i オプションを指定すると、モードとパラメータの初期値が表示されます。初期値とは、Solaris Resource Manager の起動時に事前に設定されている固有の値です。
指定した動作モードを有効または無効にします。あるいは、指定した Solaris Resource Manager のパラメータに値を割り当てます。
-d オプションを指定し、モードまたはパラメータを指定しない場合、すべてのモードとパラメータにはデフォルト値が設定されます。
-d オプションを指定し、モードまたはパラメータを指定した場合、その指定したモードまたはパラメータについては、その指定値が設定されますが、他のすべてのモードとパラメータはデフォルト値が設定されます。
"y" を設定して fileopen モードを有効にした場合、-f オプションを使用すると、リミットデータベースのファイル名 (省略可) を Solaris Resource Manager に指定できます。ファイル名を指定しない場合、デフォルトのリミットデータベースが使用されます。デフォルトのファイル名は /var/srm/srmDB です。空のデータベースを作成するには、touch コマンドを使用します。
パラメータまたはモードに set オプションを指定し、値を指定しない場合、指定したパラメータまたはモードにはデフォルト値が設定されます。
モードとパラメータは、1 回のコマンドの呼び出しで同時に設定できます。
値を変更するためには、呼び出し元ユーザーはスーパーユーザーでなければなりません。
show オプションを指定して mode 引数を指定しない場合に、-v または -V オプションを指定すると、Solaris Resource Manager の現在の設定を出力するための冗長レベルを指定できます。
冗長レベルの最高値は 3 です。1 より高い冗長レベルを指定すると、Solaris Resource Manager のシステムについて、特別な統計と設定が出力されます。-v を指定せずに srmadm を呼び出すことは、-v または -V に 1 を指定することと同じです。show オプションを指定して、モード引数を指定しない場合、-v は -V 1 と同じです。
set オプションを指定した場合、-v または -V オプションを指定すると、コマンドが正常終了した場合に限り、コマンド終了時の動作状態が (-v または -V オプションに指定した冗長レベルで) 表示されます。
デフォルトのデータベースは /var/srm/srmDB です。-f オプションを使用すると、デフォルトのデータベースを変更できます。
動作中に Solaris Resource Manager のデータベースファイルを閉じることは緊急処置であると考えなければなりません。望ましくない結果が発生する可能性があります。たとえば、すべてのプロセスは代理の root l ノードで動作し続けますが、この代理の root l ノードは通常よりも高い特権をプロセスに与える可能性があります。また、SHR スケジューラは無効になります。制限値の設定も無効になります。
無効にした場合 (fileopen=n)、現在開かれているリミットデータベースはなく、すべてのプロセスが接続されている代理の root l ノードだけがそのキャッシュに含まれます。
有効にした場合 (share=y)、SHR スケジューラが使用され、動的な使用量と減少アルゴリズムに従って CPU スケジューリングが行われます。このモードを設定するには、fileopen モードを有効にします。無効にした場合、SHR スケジューラの使用量の計算は中断され、プロセスのスケジューリングは固定等価優先順位によるラウンドロビン方式で行われます。
有効にした場合 (limits=y)、仮想メモリーが使用されプロセスの上限値が設定されます。このモードに設定するには、fileopen モードを有効にします。無効にした場合、Solaris Resource Manager では使用量属性は常に更新され続けますが、上限値の設定は行いません。
有効にした場合 (adjgroups=y)、Solaris Resource Manager の SHR スケジューラの大域的グループ実効割当率が調整されます。ほとんどの環境でこのモードを有効にすることを推奨します。
すべてのリミットエントリの使用量は実行間隔ごとに計算されます。adjgroups スケジューリングモードを有効にした場合、次のように特別な使用量の処理が行われます。スケジューラはスケジューリングツリーを調査し、各グループが最近受け取った実効割当率とその使用権利を比較します。受け取った実効割当率がその権利よりも少ないグループは、次の実行間隔において、より大きな実効割当率を受け取ります。これにより、グループのメンバーのアクションに関わらず、グループは CPU サービスの使用権利を可能な限り受け取ることができます。
有効にした場合 (limshare=y)、SHR スケジューラは、優先度上限設定機能を適用し、すべてのユーザーの実効割当率の上限値を設定し、使用状況が過度に低いユーザーが簡単に CPU の 100% 近くを取得できないようにします。このモードを有効にすることを推奨します。
ユーザーの CPU サービス率は、おおよそユーザーの使用量に反比例します。かなり長い間ユーザーが動作中になっていなかった場合、その使用量はゼロ近くまで徐々に減少します。このユーザーがログインすると (あるいは、何らかの方法で l ノードが動作中になると)、次の実行間隔の間、そのユーザーのプロセスが極端に高い優先順位を取得することになり、CPU を占有してしまう可能性があります。
limshare スケジューリングフラグを有効にした場合、スケジューラは l ノードが受け取る実効割当率を次の実行間隔の前に計算します。計算の結果がある要素 (maxushare を参照) により割り当てられた権利を超える場合、そのユーザーの使用量を調整し直し、上記のような問題を回避します。
指定したユーザー ID またはログイン名を持つユーザーを、Solaris Resource Manager の idle l ノードとします。デフォルトのユーザー名はユーザー ID が 41 の srmidle です。
すべての Solaris Resource Manager の idle CPU コストは、この l ノードに負担させます。srmidle の l ノードに接続されたプロセスは他のプロセスが実行可能でないときにだけ実行しなければならないため、srmidle の l ノードの割当率はゼロでなければなりません。
指定したユーザー ID またはログイン名を持つユーザーを、Solaris Resource Manager の lost l ノードとします。lost l ノードに root の l ノードを設定しないでください。このパラメータの値としてスーパーユーザーのログイン名を使用するとエラーになります。このパラメータの値として 0 のユーザー ID を使用した場合、Solaris Resource Manager は lost l ノードを持たないことになります。デフォルトのユーザー名はユーザー ID が 42 の srmlost です。
ユーザー srmlost が存在しないときに、デフォルト値置換機能をこのパラメータで使用すると、Solaris Resource Manager は lost l ノードを持たないことになります。
lost l ノードは、setuid(2) システムコールにより使用されます。Solaris Resource Manager では、setuid は呼び出し元プロセスを新しい l ノードに接続するという特別な機能を持っています。この接続ができない場合、あるいは lost l ノードが存在しない場合、プロセスは元の l ノードに接続されたままです。
SHR スケジューラの実行間隔。これは、すべての動作中のユーザーについての使用量を計算する時間間隔です。使用量はユーザーのプロセスの優先順位に影響を与えます。したがって、delta の値を大きくすると、スケジューラの応答時間がかなり短くなります。
優先順位の計算で使用される CPU 使用量の上限値。この値よりも多い使用量を持つユーザーは、優先順位の計算にこの値を使用します。これにより、CPU 使用量が多いユーザーのために他のユーザーの優先順位が偏ることを防ぎます。
ユーザーの使用量の半減期 (秒単位)。接尾辞文字 h (省略可) を使用すると、時間単位で値を指定できます。
pridecay は、値としてコロンで区切られた 2 つの値を必要とします。最初の値は秒数とみなされます。2 つ目の値は、時、分 (接尾辞文字が m の場合)、秒数 (接尾辞文字が s の場合) のいずれかとみなされます。それぞれ、通常の nice 値と最大の nice 値を持つプロセスの優先順位の半減期。他の nice 値の半減期率は、これら 2 つの値の間に設定され、最小の nice 値よりも低く設定されます。2 番目の値は 1 番目の値よりも大きくなければなりません。
limshare スケジューリングモードを有効にしている場合、個々のユーザーが持つことができる最大実効割当率を、その割当率の浮動小数点の倍数に設定します。この値は 1.0 以上でなければならず、デフォルトでは 2.0 です。
Solaris Resource Manager がインストールされているかどうかを検査するには、次のように入力します。
srmadm
リミットデータベースが開かれているかどうかを検査するには、次のように入力します。
srmadm show fileopen
fileopen のデフォルトの設定を表示するには、次のように入力します。
srmadm show -d fileopen
Solaris Resource Manager を有効にするには、次のように入力して、リミットデータベースを開き、SHR スケジューラを有効にして、リソースの上限値を設定します。
srmadm set -f /var/srm/myDB share=y:limits=y:fileopen=y
Solaris Resource Manager の /etc/rc2.d/S10srm スクリプトでは、システムの init レベル 2 への移行の間、上記のようなコマンドも含むいくつかの srmadm コマンドを実行します。
現在のフラグの設定と負担量を表示するには、次のように入力します。
srmadm show
デフォルトのフラグの設定と負担量を表示するには、次のように入力します。
srmadm show -d
すべてのパラメータとモードをデフォルト値に設定するには、次のように入力します。
srmadm set -d
使用量の半減期率を 5 分に設定するには、次のように入力します。
srmadm set usagedecay=300
使用量の半減期率を 5 分に設定し、それ以外のすべてのパラメータとモードをデフォルト値に設定するには、次のように入力します。
srmadm set -d usagedecay=300
スケジューラの実行率と使用量の半減期率をデフォルト値に設定するには、次のように入力します。
srmadm set delta:usagedecay
すべてのデフォルトの設定を表示するには、次のように入力します。
srmadm show -d -V 3
Solaris Resource Manager の init スクリプト
システムが init レベル 1 に入るときに使用される Solaris Resource Manager の init スクリプトへのリンク
システムが init レベル 2 に入るときに使用される Solaris Resource Manager の init スクリプトへのリンク
Solaris Resource Manager のリミットデータベース
touch(1), setuid(2), limadm(1MSRM), srm(5SRM)
『Solaris Resource Manager 1.3 のシステム管理』
このマニュアルページは、SunOS 5.6、SunOS 5.7、および SunOS 5.8 に適用できます。
名前 | 形式 | 機能説明 | オプション | 動作モード | パラメータ | 使用例 | ファイル | 属性 | 関連項目 | 注意事項