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

lwp_default_stksize

備考欄

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

データ型

整数

デフォルト
  • 8192 (x86 プラットフォーム)

  • 24,576 (SPARC プラットフォーム)

  • 20,480 (AMD64 プラットフォーム)

範囲

最小値はデフォルト値です。

  • SPARCシステムでは PAGESIZE の 3 倍。

  • x86 システムでは PAGESIZE の 2 倍。

  • AMD64 システムでは PAGESIZE の 5 倍。

最大値はデフォルト値の 32 倍です。

単位

getpagesize パラメータから戻った値の倍数になるバイト数です。詳細は、getpagesize(3C) を参照してください。

動的か

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

検査

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


Illegal stack size, Using N

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

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

スタック容量が足りないためにシステムがパニックになる場合。この問題を解決する最もよい方法は、システムが容量を使い果たす原因を明らかにし、それを修正することです。

デフォルトのスタックサイズを増やすと、ほとんどすべてのカーネルスレッドのスタックが大きくなるため、カーネルのメモリー使用量が不当に増加します。通常、そのスペースは使用されません。さらに、カーネルの使用量が増えると、同じメモリープールを使用する他のリソースの容量が少なくなるため、システムの作業を行う能力が低下するおそれがあります。副次的な影響として、カーネルが作成できるスレッドの数が少なくなります。したがって、この方法は、根本的な原因が解消されるまでの一時的な回避策として使用すべきです。

コミットレベル

変更の可能性あり

変更履歴

詳細は、lwp_default_stksize (Solaris 9 リリース)」を参照してください。