主なチューニングパラメータ

【プロセス関連のkernelパラメータ】
・kernel.threads-max
システム全体のプロセス数上限。


・fs.file-max
システム全体のファイルディスクリプタ上限。ファイルディスクリプタとはプログラムが
アクセスするファイルや標準入出力などをOSが判別して管理する総計値。


セマフォ関連のkernelパラメータ】
プロセスやスレッドの同時実行を制御するためのもの。


・kernel.sem = param1 param2 param3 param4
param1 セマフォ識別子当たりの最大セマフォ
param2 システム全体のセマフォ
param3 セマフォコールあたりの最大演算子
param4 システム全体のセマフォ識別子数


【メモリのkernelパラメータ】
ダーティページをディスクに頻繁にpdflushで書き込ませてメモリの開放を
重視するのか、ダーティページをディスクに頻繁に書き込ませないようにして
pdflushの動きを抑えるのかで下記の値を設定します。
※通常のチューニングは無駄なページキャッシュの使用を抑える為に
 メモリの開放を重視します。


vm.dirty_ratio、vm.dirty_background_ratio
vm.dirty_ratio > ダーティーページの割合 > vm.dirty_background_ratio
の時にpdflushがバックグラウンドで動作します。
ダーティーページの割合 > vm.dirty_ratio
の時に優先度が高いフォアグラウンドプロセスとしてpdflushが動作します。
※この事からvm.dirty_ratioの値を小さくするのが無駄なページキャッシュ開放への
 近道となります。まずvm.dirty_ratioを小さくしてからvm.dirty_background_ratioを
 検討するのが無駄なページキャッシュ開放への近道です。


vm.ditry_writeback_centisecs
pdflushの定期的な起動間隔 100分の1秒単位。


vm.dirty_expire_centisecs
ダーティページの保持時間限界 100分の1秒単位。

vm.swapiness
値が大きいほどスワップを使おうとしますのでスワップさせない為に値を小さくします。


上記までの値は/etc/sysctl.confに記述して変更する。


・/proc/sys/vm/min_free_kbytes
空きメモリー容量がこのmin-free-kbytesより下回った場合に
ページ回収処理が実行される。上記のvm.dirty_ratio、
vm.dirty_background_ratioの設定の後でこの値が使用され開放になる。
あまり大きくしすぎると常に大きな空きメモリが必要になってしまうので注意。
Ubuntu10.04 x86_64のデフォは5750(kb)


※今回共有メモリ系のパラメータは記載していない。64bit版を使うと
 あまりチューニングする必要がなくなってきている為。