しかし、freeで見たところ600Mくらいしか使っていないのですが、割り当てるメモリをより多くするにはどうすればいいのでしょうか?
my.cnfでkey_buffer_sizeの値を2Gとかにしてもたいして変わりません。現在はmy-huge.cnfを参考に4倍程度の数値で運用しています。
LoadAverageがMAXで3~5くらい。CPUはDualXeonでMAX0.6くらいです。もっとメモリの割り当てを増やすことができればこれらを下げることができるのかなと思ったのですが、どういう手段(サーバ設定で)がありますでしょうか。
また、サーバ設定以外でもいいアイデアがありましたら教えてください。
よろしくお願いします。
少々古い情報なので外しているかもしれません。
http://opentechpress.jp/print.pl?sid=03/07/10/034238
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25486&fo...
Linuxカーネルバージョン2.4では、カーネルコンパイル時のオプションとして、 RAM容量を選べ、1GB未満、1GB以上4GB未満、4GB以上64GB未満を選べます。
とあります。カーネルコンパイルを行うとRAM容量を増やすことができるようです。
key_buffer_size は、indexを保存するために使われます。そのため、indexを適切に配置しないと、有効に使われないと思います。
他のパラメタを見直す必要があるのではないでしょうか。
mysql> SHOW STATUS;
を見て、問題点を探ると良いと思います。
あと、カーネルのI/Oスケジューラを deadline にするといいかもしれません。
この例では cfq になってますが、これを deadline にすればいいです。
OSは4Gを認識しているんです。ただ使用せずにメモリが余っているだけで…
それをmysqlが使ってくれるようにするにはどうしたらいいのか、と悩んでおります。