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

default_stksize

備考欄

すべてのスレッドのデフォルトスタックサイズを指定します。default_stksize より小さいスタックサイズを指定してスレッドを作成することはできません。default_stksize が設定されている場合、それは lwp_default_stksize に優先します。lwp_default_stksize も参照してください。

データ型

整数

デフォルト
  • SPARCシステムでは PAGESIZE の 3 倍。

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

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

範囲

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

  • 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 の値は、 default_stksize のデフォルト値です。

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

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

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

コミットレベル

変更の可能性あり