Solaris Resource Manager 1.3 のシステム管理

カーネルのブートパラメータ

中央のシステム管理者がカーネルをブートするときに設定できるパラメータが Solaris Resource Manager にはいくつかあります。Solaris システムでは、起動時に /etc/system ファイルを読み込み、これを使ってカーネルモジュールを構成します (詳細は、system(4) を参照)。SHR モジュールに設定できるパラメータ (すべて 32 ビットの整数) には、次のものがあります。これによって、Solaris Resource Manager のデフォルトの動作を無効にできます。

SRMLnodes

カーネルにキャッシュする l ノードの数。Solaris システムでは、カーネルの l ノードごとに約 3K バイトが必要です。値ゼロ (デフォルト) を指定すると、カーネルが値を決めます。その場合には、次の方法が使用されます。

(nproc / SRMProcsPerUid ) + SRMLnodesExtra 

ここで、nproc はシステムで同時に動作できるプロセスの最大数です。計算の結果が 6 より小さいと、最小値として 6 が使われます。さらに、計算の結果が SRMMemoryMax に指定されている最大値より大きいと、この最大値が使用されます。

SRMProcsPerUid

各ユーザーによって使用されることが予想される平均のプロセス数。デフォルトは 4 です。

SRMLnodesExtra

メモリー内の l ノードの配列のサイズを決めるための方法で使用する偏り。デフォルトは 20 です。

SRMNhash

カーネルの中でユーザー ID の値を l ノードにマップするときに使用するハッシュテーブルのエントリ数。Solaris システムでは、エントリの長さは 4 バイトです。デフォルトはゼロです。この場合には、l ノードの数と同じ数が使用されます。

SRMMemoryMax

この値の逆数が、Solaris Resource Manager の l ノードとハッシュテーブルの合計に使用する実メモリーの最大パーセントを指定する値です。デフォルトは 20 です。この場合には、Solaris Resource Manager のデータ構造に対し、実メモリーの最大 5 パーセントが使用されます。

SRMMemWarnFreq

1 つの l ノードに対し「memory exceeded (メモリーを超過しました)」の警告を通知する最小間隔を秒数で示したもの。デフォルト値は 4 です。

たとえば、/etc/system ファイルに次の行があるとします。

set srmlim:SRMMemWarnFreq=10 

この場合、メモリー超過のメッセージが 1 人のユーザーに対し 10 秒に 2 回以上出されることはありません。

さらに、Solaris Resource Manager のパラメータではありませんが、動作に影響するパラメータがあります。

initclass

スケジューリングクラス名です。init(1M) プロセスはこのクラスで起動されます。Solaris Resource Manager の場合、この値は文字列 "SHR" (二重引用符を含む) にします。Solaris のデフォルト値は "TS" です。Solaris Resource Manager を使って CPU 資源を制御する場合は、次の行で /etc/system ファイルに指定し、デフォルト値より優先させます。

set initclass="SHR"

extraclass

ロードするスケジューリングクラスモジュール名です。ただし、これがデフォルトのスケジューリングクラスとして使用されるとは限りません。Solaris Resource Manager で CPU 資源以外のものだけを制御する場合は、次の行を /etc/system ファイルに指定します。

set extraclass="SHR"

Solaris Resource Manager をロードしていないシステムをブートするには、/etc/system ファイルの代わりに /etc/system.noshrload を使用します。この処理については、Solaris Resource Manager を使用しない場合の起動を参照してください。

マルチユーザー起動構成

通常のシステムブートで、システムがシングルユーザーモードからマルチユーザーモードに変わると、Solaris Resource Manager の初期化スクリプトが実行され (付録 A 「Solaris Resource Manager スクリプトの例」 を参照)、Solaris Resource Manager のパラメータが設定されます。このスクリプトの詳細は、第 4 章「ブート手順」で説明します。

初期化スクリプト自体 (/etc/init.d/init.srm) を変更する場合は、元のコピーと変更後のコピーを別々に保存する必要があります。Solaris Resource Manager の更新を適用する場合、現在の初期化スクリプトが保存されるとは限りません。