このサーバをlennyにした話は既に書いた。
あまりに不安定なんで閉口していたのだけど、ここのところ安定させることに成功したらしく、落ちることがなくなった。
どうやったかについてちょっと解説。
まず一番大きかったのは、lennyのXenが何で落ちているかを発見することが出来たことだ。じゃ、落ちてた原因は何かと言えば、
ページング
だ。つまりswapが発生した途端に落ちていた。となれば解決はわかったもので、とにかくswapが起きないようにする。swapしたら負けとばかりに、諸々と調整する。具体的には、Apacheのプロセス数を調整して、swapが起きないようにすることと、swapoffにしておくことだ。これで半日に1度落ちるようなことはなくなった。
次にやったことは、/homeをクラス分けしたことだ。具体的には、
- 頻繁に更新が発生しているユーザ
- 頻繁に追記が発生しているユーザ
- 全く更新されないユーザ
に分けて、別々の仮想ボリュームを与えることにした。
以前は/homeはみな同じボリュームにしていたため、全く更新されないユーザの領域が頻繁に追記されているユーザのせいで壊れるということがあったのだが、クラス分けすることで壊れることはなくなった。おまけに、1つのボリュームが小さくなったから、fsckする時の時間も少なくて済むようになった。
このようにすることによって、頻繁に落ちたり復旧に時間がかかるということはなくなって、安定稼動するようになった。まぁswapをなくしたことで仮想空間が狭くなってしまったのだけど、落ちてしまうよりはずっといい。
まぁ、こんな工夫をしなくても落ちないというのが一番良いのではあるけれど。