Solaris カーネルのチューンアップ・リファレンスマニュアル

一般的なパラメータ

この節では、物理メモリーやスタックサイズに関する一般的なカーネルパラメータについて説明します。

physmem

説明

OS とファームウェアを除いたメモリーの物理ページ数に関するシステムの値を変更します。

データ型

符号なし long

デフォルト

そのシステムで使用できる物理メモリーのページ数。これには、コアカーネルとそのデータが格納されているメモリーは含まれません。

範囲

1 からシステムの物理メモリーの総量まで

単位

ページ

動的か

いいえ

検査

なし

どのような場合に変更するか

より少ない物理メモリーで実行したときの影響を調べたい場合。このパラメータに対しては、コアカーネルやそのデータ、その他のさまざまなデータ構造体 (起動処理の初期に割り当て) などのメモリーは考慮されません。したがって、physmem の値は、より小さなメモリー量を表わすよう、想定したページ数より小さくすべきです。

コミットレベル

変更の可能性あり

lwp_default_stksize

説明

カーネルスレッドが作成されるときに、呼び出しルーチンが使用するサイズを明示的に指定しない場合に使用される、スタックのサイズのデフォルト値。

データ型

整数

デフォルト

32 ビットの SPARC や x86 ベースのプラットフォームでは 8192

64 ビットの sun4u プラットフォームでは 16,384

範囲

0 から 262,144

単位

バイト。ただし、getpagesize(3C) から返される値の倍数。

動的か

はい。変数の変更後、作成されるスレッドに影響があります。

検査

8192 以上 262,144 (256 × 1024) 以下で、かつシステムページサイズの倍数でなければなりません。これらの条件が満たされないと、次のメッセージが表示されます。


Illegal stack size, Using N

N の値は、上述のデフォルト値です。

どのような場合に変更するか

スタック容量が足りないためにシステムがパニックになる場合。この問題を解決する最もよい方法は、システムが容量を使い果たす原因を明らかにし、それを修正することです。デフォルトのスタックサイズを増やすと、ほとんどすべてのカーネルスレッドのスタックが大きくなるため、カーネルのメモリー使用量が増加します。増加した容量は一般には使用されず、無駄になります。さらに、カーネルの使用量が増えると、同じメモリープールを使用する他のリソースの容量が少なくなるため、システムの作業を行う能力が低下するおそれがあります。副次的な影響には、カーネルが作成できるスレッドの数が少なくなるということがあります。したがって、この方法は、根本的な原因が解消されるまでの一時的な回避策として使用すべきです。

コミットレベル

変更の可能性あり

logevent_max_q_sz

説明

キューに入れることができる、syseventd デーモンへの配送を待つシステムイベントの最大数。 システムイベントキューのサイズがこの制限に達すると、他のシステムイベントをキューに入れることはできません。

データ型

整数

デフォルト

2000

範囲

0 から MAXINT

単位

システムイベント

動的か

はい

検査

ddi_log_sysevent(9F)sysevent_post_event(3SYSEVENT) を介してシステムイベントが生成されるたびに sysevent フレームワークはこの値をチェックします。

どのような場合に変更するか

システムイベントのログ、生成、または送信が失敗したことをエラーログメッセージが示す場合。

コミットレベル

変更の可能性あり

segkpsize

説明

利用できるページング可能なカーネルのメモリー量を指定します。このメモリーは主にカーネルスレッドのスタックに使用されます。この値を増やすと、スレッドの数を増やさないのであれば個々のスレッドでより大きなスタックが使用でき、あるいはより多くのスレッドを使用できるようになります。このパラメータは、64 ビットカーネルが動作しているシステムのみで設定できます。64 ビットカーネルが動作しているシステムは、デフォルトで、24K バイトのスタックサイズを使用します。

データ型

符号なし long

デフォルト

64 ビットカーネルでは 2G バイト

32 ビットカーネルでは 512M バイト

範囲

64 ビットカーネルでは 512M バイトから 24G バイト

32 ビットカーネルでは 512M バイト

単位

8K バイトのページ

動的か

いいえ

検査

値が最小値と最大値 (64 ビットシステムの場合は 512M バイトと 24G バイト) と比較され、この範囲にない場合、2G バイトにリセットされ、それを表すメッセージが表示されます。

キャッシュの作成で実際に使用されるサイズは、制約チェックの後で segkpsize に指定されている値か、物理メモリーの 50% のうち、小さい方です。

どのような場合に変更するか

システムで多数のプロセスをサポートする場合は、このステップが必要です (他のステップも必要)。物理メモリーが 1G バイト以上あると想定すると、デフォルトサイズの 2G バイトで、87,000 以上のカーネルスレッドに対し 24K バイトのスタックを作成できます。64 ビットカーネルのスタックサイズは、プロセスが 32 ビットプロセスでも 64 ビットプロセスでも同じです。これより大きな数が必要な場合は、物理メモリーが十分にあれば segkpsize を増やすことができます。

コミットレベル

変更の可能性あり

変更履歴

詳細についてはsegkpsize (Solaris 9 12/02 リリース)を参照してください。