/etc/system ファイルに設定する bufhwm 変数は、バッファーキャッシュに割り当てる最大メモリー容量を決定し、KB 単位で指定します。bufhwm のデフォルト値は 0 であり、この設定で、システムはシステムメモリーの 2 % まで使用することができます。バッファーキャッシュに使用可能な大きさは、最大でシステムメモリーの 20 % です。NFS 専用のファイルサーバーで、メモリーが比較的小容量の場合は、10 % 程度にする必要が生じることがあります。大きなシステムの場合、オぺレーティングシステムのカーネルの仮想アドレス空間が不足しないように、さらに制限する必要があります。
バッファーキャッシュは、i ノードや間接ブロック、シリンダグループ関係のディスク入出力をキャッシュする目的にのみ使用されます。以下の例では、バッファーキャッシュ (bufhwm) を最大で 10 MB まで確保できるように bufhwm を設定しています。通常、これ以上の値は設定しないでください。
set bufhwm=10240
バッファーキャッシュの読み取りヒット率 (%rcache) と書き込みヒット率 (%wcache) を表示する sar -b コマンドを実行して (以下のコード例を参照)、バッファーキャッシュを監視することができます。
# sar -b 5 10 SunOS hostname 5.2 Generic sun4c 08/06/93 23:43:39 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s Average 0 25 100 3 22 88 0 0
1 秒間に 50 以上の著しい回数の読み取りと書き込みが行われる場合、読み取りヒット率 (%rcache) が 90% 以下の場合、あるいは書き込みヒット率 (%wcache) が 65% 以下の場合は、バッファーキャッシュ bufhwn の値を大きくします。
上記の sar -b 5 10 コマンドの出力例では、読み取りヒット率が 90 % 以上、書き込みヒット率が 65 % 以上になっています。
sar コマンドの引数の意味は、以下のとおりです。
表 3-6 sar コマンドの引数引数 | 説明 |
---|---|
b |
バッファーの使用状況を検査します。 |
5 |
5 秒おきに検査します (最低でも 5 秒にします)。 |
10 |
統計情報を収集する回数です。 |
システムは、バッファーキャッシュのサイズが許容範囲を超えることを防ぎます。バッファーキャッシュサイズを大きくすると、以下の問題が発生します。
サーバーが停止します。
オペレーティングシステムのカーネル仮想メモリーの不足によって、デバイスドライバに障害が発生します。