Solaris 10 の記述部分が更新され、「sun4m」が削除されました。
このパラメータは Solaris 10 10/09 リリースおよび OpenSolaris 2009.06 リリースからの新規パラメータです。詳細は、「ddi_msix_alloc_limit」を参照してください。
デフォルト値が sun4v システムを含むように更新されています。詳細は、「maxphys」を参照してください。
Solaris 10 の maxphys のデフォルトの項から「126,976 (sun4m)」が削除されました。
Solaris 8 バージョンでは、デフォルトは1024 です。それ以降のSolaris リリースでは、デフォルトは 65,536 です。
このパラメータに関する記述は Solaris 10 10/09 リリースで新しく追加されました。詳細は、「zfs_arc_min」を参照してください。
このパラメータに関する記述は Solaris 10 10/09 リリースで新しく追加されました。詳細は、「zfs_arc_max」を参照してください。
Solaris 10 の説明の項が更新され、「および sun4m」の語句が削除され、「64 ビット SPARC および AMD64」の語句が追加されました。
Solaris 10 の説明の項が更新され、AMD64 の場合のデフォルトおよび最大値が追加されました。
SPARC プラットフォームの Solaris 10 のデフォルト値が 24,576 に変更されました。
Solaris 9 の説明の項が更新され、「および sun4d」の語句が削除されました。
旧 Solaris 9 リリースで、単位が 8K バイトのページであるべきところで、誤って M バイトの指定になっていました。さらに、範囲およびデフォルトの項で、Solaris 10 リリースに関して次の語句が削除されました。このパラメータは 64 ビットカーネルが動作しているシステムに限って使用できるからです。
32 ビットカーネルでは 512M バイト
Solaris 10 10/08 リリースでは、説明を明確にするために、「物理」メモリーページ数が調べられるという記述が追加されました。
Solaris 10 バージョンでは、値の範囲が誤って 1 から 1024 と記述されていました。実際の範囲は、システムのアーキテクチャーと入出力サブシステムによって決まります。詳細は、「maxpgio」を参照してください。
Solaris 8 バージョンで、デフォルトの記述が次のようになっています。
トリプレットの最大値(200, tune_t_minarmem + 100, [ブート時に使用可能なメモリーの10%])
Solaris 9 およびそれ以前のリリースでは、「どのような場合に変更するか」の項で、nfs:nrnode パラメータが誤って nfs:nfs_rnode になっていました。
Solaris 10 リリースでは、ncsize パラメータのデフォルト値が誤って次のように記述されていました。
4 x (v.v_proc + maxusers) + 320 / 100
正しいデフォルト値は次のとおりです。
(4 x (v.v_proc + maxusers) + 320) + (4 x (v.v_proc + maxusers) + 320 / 100
詳細は、「ncsize」を参照してください。
このパラメータの情報は Solaris 10 リリースで大幅に変更されました。詳細は、「bufhwm および bufhwm_pct」を参照してください。
入出力バッファーをキャッシュするためのメモリーの最大量。バッファーは、ファイルシステムのメタデータ (スーパーブロック、i ノード、間接ブロック、ディレクトリ) の書き込みに使用されます。バッファーは、その量が bufhwm に達するまで必要に応じて割り当てられます。bufhwm に達すると、バッファーを再利用して要求を満たします。
歴史的経緯により、このパラメータには ufs: 接頭辞は必要ありません。
符号付き整数
物理メモリーの 2%
80K バイトから物理メモリーの 20%
K バイト
いいえ。この値は、ハッシュバケットサイズの計算に使用された後、データ構造体に格納されます。このデータ構造体は、バッファーの割り当てや解放に応じて、そのフィールドの値を調整します。動作しているシステムのロック手順に従わずにこの値を調整すると、正しくない動作を招くおそれがあります。
bufhwm が 80K バイトより小さいか、bufhwm が、物理メモリーの 20% もしくは現在のカーネルヒープ値の 2 倍のうち小さい方より大きい場合、bufhwm は、物理メモリーの 20% か現在のカーネルヒープ値の 2 倍のうち小さい方にリセットされます。その場合は、次のメッセージがシステムコンソールと /var/adm/messages ファイルに出力されます。
"binit: bufhwm out of range (value attempted). Using N." |
「value attempted」は、/etc/system で指定された値または kadb -d による値を表します。N は使用可能なシステムメモリーに基づいてシステムが計算した値です。
バッファーは必要が生じた時にのみ割り当てられるため、デフォルト設定によるオーバーヘッドは、考えられる最大のバッファー数を処理するために必要になる制御構造体が割り当てられることです。これらの構造体は、32 ビットカーネルでは想定されるバッファー当たり 52 バイト、64 ビットカーネルでは想定されるバッファー当たり 104 バイトを消費します。512M バイトの 64 ビットカーネルでは、この構造体は 104*10144 バイト (約 1M バイト) を消費します。ヘッダーの割り当てでは、バッファーサイズは 1K バイトであると想定します。ただし、ほとんどの場合、バッファーサイズはこれより大きいのが普通です。
バッファープール内でまだ割り当てられていないメモリー量を知るには、カーネルデバッガを使用して、カーネルの bfreelist 構造体を調べます。この構造体の bufsize フィールドが、残っている可能性があるメモリーのバイト数です。mdb を使用して buf マクロでこのフィールドを表示するには、次のようにします。
# mdb -kLoading modules: [ unix krtld genunix ip nfs ipc ] > bfreelist$<buf bfreelist: [ elided ] bfreelist + 0x78: bufsize [ elided ] 75734016 |
6G バイトのメモリーを装備したこのシステムでは、bufhwm は 122277 です。要求されたバッファーの実際のサイズは通常、1K バイトを超えるので、ヘッダー構造体の数を直接調べることは困難です。しかし、一部の領域は、このシステムに割り当てられた制御構造体からうまく回収されることがあります。
512M バイトシステム上でこの構造体が、10144K バイトのうち 4K バイトだけがまだ割り当てられていないことを示したとします。また、kstat -n biostats で biostats の kstat を調べると、このシステムでは、buffer_cache_hits と buffer_cache_lookups の割合も適切であることが分かったとします。これらの情報は、このシステムのデフォルト設定であることを示します。
変更の可能性あり
範囲の説明が sun4v システムを含むように更新されています。詳細は、「tmpfs:tmpfs_maxkmem」を参照してください。
Solaris 8 バージョンで、「ページ」であるべき単位が誤って「バイト」になっていました。
Solaris 07 4/4 リリースでは、Sun-8u 固有のパラメータセクションのタイトルが sun4v システムを含むように改訂されました。
デフォルトの記述が変更されました。詳細は、「default_tsb_size」を参照してください。
説明とデフォルト値および範囲の値が変更されました。詳細は、「enable_tsb_rss_sizing」を参照してください。
「どのような場合に変更するか」の記述例が次のように変更されました。
たとえば、tsb_rss_factor を 384 (事実上は 75%) ではなく 256 (事実上は 50%) に変更すると、状況によっては、TSB における仮想アドレスの衝突を排除できることがありますが、特に負荷の大きいシステムでは、カーネルメモリーの使用量が増えます。