このサイトはDTIのServersMan@VPSというレンタル仮想サーバー上に構築しています。
これまでそこそこまともに運用できていたのですが、先週の水曜日(2012/09/12)から急激にレスポンスが悪くなり、Webサイトがまともに表示されなくなりました。
きっかけ&発覚
正直なところ、なぜ突然不調になったのかは分かりません。
どうもタイミング的には2012/9/12に行われた「過去最大級のメジャーバージョンアップ」とやらが怪しいのですが、因果関係はつかめていません。
発覚したのは、バージョンアップがあったとのことなので、SSHでログインしようとしたら、非常に処理が重かったためです。
これはおかしいと、ロードアベレージを確認すると3~5になっており、非常に負荷が高くなっていることが分かりました。
といってもサーバの設定はいっさい変更していません。単にlsコマンドを実行するだけでも非常にまたされます。ためしにルートディレクトリでlsコマンドの実行時間を計ってみました。
cd / time ls
real 0m33.908s user 0m0.002s sys 0m0.004s
なんと、単にlsするだけで30秒以上。しかし、userとsysはほとんど処理時間がかかっていないことから、処理が重いのではなく、どうも何らかのイベント待ちになってしまっていると推定できました。
この時点で、DTIのサポートに連絡をいれ、調査を依頼しました。
緊急対策
サポートのから返事くるまで何もしないわけにはいきません。
とりあえず負荷を下げるべく、同時に走るWebサーバ(Apache)のプロセス数を抑制することにしました。
このためには/etc/apache2/apache2.confのmpm_prefork_moduleの値を書き換え、
<ifmodule mpm_prefork_module> StartServers 1 MinSpareServers 2 MaxSpareServers 3 MaxClients 5 MaxRequestsPerChild 5 </ifmodule>
Apache2を再起動します。
sudo /etc/init.d/apache2 restart
しかし・・・負荷はやや下がった気がしますが、やはりロードアベレージは3前後と高い状態のままです。
結局
今週の日曜日(2012/09/16)あたりに何かが解消したらしく、Webページも表示されるようになりました。
この間の日別アクセス数の変化は下記の通りです。9/15は壊滅的だったことが分かります。
DTIからの調査報告は、同じサーバー(ホスト)内の他のユーザが高負荷になっていた、とのこと。
ユーザごとのI/O帯域は上限が設けられていないのでしょうか!?
何はともあれ復旧してよかったです。
まとめ
今回はWebサーバが不調になった状況を説明しました。
9/12~9/15の間に当サイトを訪れた方には大変ご迷惑をおかけしました。
無事これ名馬ではないですが、サーバは安定性が重要ですので、VPS業者にはがんばってもらいたいところです。
コメント