ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 カーネルのチューンアップ・リファレンスマニュアル Oracle Solaris 11.1 Information Library (日本語) |
1. Oracle Solaris システムのチューニングの概要
2. Oracle Solaris カーネルチューニング可能パラメータ
3. Oracle Solaris ZFS チューニング可能パラメータ
システムで使用されるプロセスの数や個々のユーザーが作成できるプロセスの数を制御するパラメータ (または変数) がいくつかあります。基本パラメータは maxusers です。このパラメータによって、max_nprocs と maxuprc に値が割り当てられます。
maxusers は、当初、システムがサポートできるログインユーザーの数を指定するものでした。カーネルの生成時に、この設定値に基づいて各種テーブルの大きさが決定されました。Oracle Solaris 最新リリースでは、そのサイジングの大半をシステム上のメモリー容量に基づいて行います。したがって、maxusers の使い方がこれまでとは大きく変わりました。引き続き、maxusers に基づいて決定されるサブシステムには次のものがあります。
システムで使用できるプロセスの最大数
システムに保持される割り当て構造体の数
ディレクトリ名検索キャッシュ (DNLC) の大きさ
符号付き整数
M バイト単位のメモリーの容量と 2048 のどちらか小さい方、およびその値と nCPU x 8 のどちらか大きい方
/etc/system ファイル内に設定されていない場合、物理メモリーのサイズに基づいて、1 から 2048 と nCPU x 8 のどちらか大きい方まで
/etc/system ファイル内に設定されている場合、1 から 4096 と nCPU x 8 のどちらか大きい方まで
ユーザー
いいえ。このパラメータに依存する変数を計算した後に maxusers が再び参照されることはありません。
許容される最大数より値が大きい場合、最大数にリセットされます。その作用に関するメッセージが表示されます。
システムによって計算されたデフォルトのユーザープロセス数が小さすぎる場合。このような状況は、システムコンソールに表示される次のメッセージでわかります。
out of processes
次の状況のように、デフォルトのプロセス数が多すぎる場合に、このパラメータを変更するかもしれません。
多量のメモリーがあり、動作しているプロセスの数が比較的少ないデータベースサーバーでは、maxusers のデフォルト値を少なくすることによってシステムメモリーをセクション約できます。
多量のメモリーがあり、動作しているプロセスがほとんどないファイルサーバーでは、この値を減らせる場合があります。しかし、その場合、DNLCのサイズを明示的に設定する必要があります。「ncsize」を参照してください。
変更の可能性あり
詳細は、「maxusers」を参照してください。
UIDが root (0) のプロセス用に、プロセステーブルで確保するシステムプロセススロット数を指定します。たとえば、fsflush には root (0) の UID が与えられます。
符号付き整数
5
5 から MAXINT
プロセス数
いいえ。最初のパラメータ計算の後は使用されません。
/etc/system のどの設定も受け入れられます。
変更の可能性あり
たとえば、システムの UID 0 (root) のプロセスの数を、通常の値から 10 大きくした場合を考えてみてください。この設定をしないとユーザーレベルのプロセスを作れないような状況でも、この設定を行うことによって root でシェルを起動するために必要な余裕が生まれます。
pidmax では maxpid 変数の値を設定します。したがって、maxpid がいったん設定されると、pidmax は無視されます。maxpid は、カーネルの別のところで、最大のプロセス ID を判別したり、妥当性検証を行うために使用されます。
/etc/system ファイルに maxpid エントリを追加して設定しようとしても、効果はありません。
符号付き整数
3,000
5 から 999,999
プロセス数
いいえ。pidmax の値を設定するためにブート時だけ使用されます。
はい。reserved_procs の値と 999,999 に対して値を比較します。reserved_procs より小さい場合、または 999,999 より大きい場合、値は 999,999 に設定されます。
max_nprocs に対して範囲の検査が行われ、max_nprocs は常にこの値以下に保たれます。
システム上で 30,000 を超える数のプロセスをサポートできるようにするために必要です。「max_nprocs」も参照してください。
変更の可能性あり
詳細は、「pidmax」を参照してください。
システム上に作成できるプロセスの最大数を指定します。システムプロセスとユーザープロセスを含みます。/etc/system に指定した任意の値が maxuprc の計算に使用されます。
この値は、他のいくつかのシステムデータ構造体のサイズを決定する場合にも使用されます。このパラメータが作用する他のデータ構造体は、次のとおりです。
ディレクトリ名検索キャッシュのサイズを決めるとき (ncsize が指定されていない場合)
構成されたシステム V セマフォーによって使用されるメモリーの総量がシステム限度を超えていないか確認するとき
x86 プラットフォーム向けのハードウェアアドレス変換のリソースを構成するとき
符号付き整数
maxusers が /etc/system ファイル内で設定されている場合は、10 + (16 x maxusers)
maxusers が /etc/system ファイル内で設定されていない場合は、30,000 と 10 + (128 x CPU の数) のどちらか大きい方
26 から maxpid の値
いいえ
はい。値が maxpid を超える場合、maxpid に設定されます。
このパラメータの変更は、1 つのシステムで 30,000 を越えるプロセスを可能にするために必要となる手順の 1 つです。
変更の可能性あり
詳細は、「max_nprocs」を参照してください。
符号付き整数
max_nprocs - reserved_procs
1 から max_nprocs - reserved_procs
プロセス数
いいえ
はい。この値は max_nprocs - reserved_procs と比較され、2 つの値のうちの小さい方に設定されます。
1 ユーザーが作成できるプロセスの数を強く制限するために、デフォルト値より小さい値を指定したい場合 (システムが作成できるプロセスの数が多くても)。この限度を超えると、次の警告メッセージがコンソールかメッセージファイルに出力されます。
out of per-user processes for uid N
変更の可能性あり
符号付き整数
16
0 から 1024
グループ
いいえ
はい。ngroups_max が無効な値に設定された場合、もっとも近い有効値に自動的にリセットされます。たとえば、ゼロより小さい値に設定された場合は、0 にリセットされます。1024 より大きい値に設定された場合は、1024 にリセットされます。
NFS AUTH_SYS 認証を使用していて、デフォルトの ngroups_max 値を増やす場合、次の考慮事項を検討してください。
ngroups_max が 16 に設定されるか、指定されたクライアントの AUTH_SYS 資格のグループが 15 以下の場合は、クライアントのグループ情報が使用されます。
ngroups_max が 16 より大きく設定され、かつネームサーバーからのクライアントの AUTH_SYS 資格に、許容される最大数である 16 グループが含まれている場合、NFS サーバーはネームサーバーを調べてクライアントの UID をユーザー名と照合します。その後、ネームサーバーはユーザーが属するグループのリストを計算します。
変更の可能性あり
詳細は、「ngroups_max」を参照してください。