このBlogは自宅にあるML115G1を使って運営しているのですが、この前CPUをノーマルの3500+から5000BEに変更しました。おかげで処理自体は軽くなったのですが(微々たる差ですが)、その後どうも調子が悪い。一度メモリがいっぱいになってフリーズし、メモリを増設したのですが、そのほうが調子悪いということになりました。CPUを元に戻すことも考えましたが、それもつまらない。
とりあえずメモリ管理で、重要なプロセスを殺してしまいそうなOOM-Killer(メモリが足りないときにプロセスを殺す仕組み)をDisableしようとしました。
echo 0 > /proc/sys/vm/oom-kill(すべてのプロセスをOOM-Killerの対象にしない)
とすると、CentOS 5.3だとファイルがない、としてエラーが返ってきます。なので意味ないじゃん、ってことで、メモリ管理をいじくることにしました。
echo 2 > /proc/sys/vm/overcommit_memory
これによりメモリがない場合にはメモリを必要とするプロセスを起動しない、という設定になるわけです。んが、しかし。これをするとcactiとかでサーバを監視するプロセスすら起動しないときがある…。なので、もう一度デフォルト状態に戻すことに。oom killerが殺すプロセスをチェックしつつ、様子見をすることにしました。つまりまったく解決していないw
なんというかサーバの運営をしていて、Blog以外にも色々な場面で使っているので止まってしまうとかなり気分が悪くなります。リモートでON/OFFもできないので、自宅にいないときにはホントにストレスがたまるというか。
いずれ別のマシンにリプレイスするときがあるとは思いますが、当たり前の手順としてテスト運用をかなりしっかりやって、構成をいじらなくてもいいようにする、ってことをしないといけませんね。正直、メモリが足りなくなることなんてないと思っていましたが、今回想定もしないメモリ消費をしてしまったので、走らせるプロセスも吟味しないとダメかもしれません。apacheのプロセス起動を少し抑えようかなぁ。
swapも1GBじゃなくて、もっと切っておけばよかったような気がします。あまり切っても死ぬほど遅くなるほどメモリアロケートされそうな気がしますけど…。