
innodb_buffer_pool_size の設定が間違っていると OS レベルのページングが発生する可能性があると読みました。これが発生する原因と防止方法をご存知の方はいらっしゃいますか? 現在 CentOS 4 と MySQL 5.0.41 を使用しています。
答え1
場所memlock オプションmy.cnf 内。CentOS5 では SELinux がメモリ内の mysqld プロセスのロックを防止していたため、これを有効にするには独自のモジュールを作成する必要がありました。
もう一つの可能性は大きなページulimit -l unlimited
常にメモリ内に常駐します。mysqldの起動スクリプトに必ず入れてください。
答え2
簡単に言えば、ページングを回避するには、バッファ サイズを、OS がメモリを使用する他のすべてのものとともにメモリに完全に収まる程度に小さくする必要があります。メモリ要件の合計が物理メモリよりも大きくなると、スワップされます。スワップ領域がない場合は、何かが壊れる必要があります。
答え3
マシンでスワップが有効になっていて、物理 RAM よりも大きいバッファ プールがある場合、バッファ プールの RAM を解放するためにディスクにスワップ アウトされます。これを防ぐには、スワップを無効にするか、mysql がスワップ アウトされるほどの物理 RAM を消費しないようにします。