VPS が何故だか定期的に高負荷になる原因は・・・

東日本大震災による計画停電対策として自宅サーバで運用してきたブログを sakura VPS 1.5G プランのサーバへ移行しました。他社 VPS の価格帯と比較しても十分に安くパフォーマンスも上々とのことで、非常に満足度の高い VPS として知られているわけですが、ひとつ困ったトラブルに悩まされ続けています。

なぜか不定期に高負荷になり OS が反応しなくなってしまうトラブルに悩まされ続けています。

- スポンサーリンク -

先日別件でお名前.com の VPS との比較を行うためにデータをとって気がついたのですが、どうもトラブル対処としてサーバを手動再起動している期間に規則性がありそうです。普段はトラブル時に取りあえずの対処で再起動していただけで、各種データも取得し続けているもトラブルの解析を行う時間もなかったので、定期性があることにすら気がつけていませんでした。

uptime-month.png

RRDTOOL でグラフ化している各種数値をみてみると、どうやら swap が関連していそうです。

swap-month.png

自宅サーバ運用時には swap 未経験だし、基本的に同じオプションで各種ミドルウェアもコンパイルしているので原因不明です。どう見てもメモリリークしてメモリ不足に陥り swap に割り当てられた 2GB を食いつぶすときにサーバが応答不能になっているようにしかみえません。

あーでもこのエントリを書きながら swap 開始日時を長期スパンでみて気がつきました。
twitvideo.info サービスを作ったあたりから怪しげな動きをしているようにも見えるので、AnyEvent まわりでリークしてるような気もします。単に AnyEvent の使い方を間違えている可能性も否定できません・・・orz

swap-year.png

詳細な分析を行う時間もないし、twitvideo.info は自分が使ってるので AnyEvent::Twitter::Stream を止めるわけにも行かないので、取りあえず sakura VPS で割り当てられている swap 2GB を食いつぶす前に5日毎に夜中にサーバを再起動するスクリプトを仕込んで仮対処することとしました。

というわけで swap が原因でサーバが反応不能になるトラブルなんてのは、本当に久しぶりの経験だったので、ちょっと懐かしくもあり嬉しくもあるけど、当面放置するよってネタでした。

念のためですが、さくら VPS が悪いわけでは全くありません。VPS のスペックには大変満足しています。

- スポンサーリンク -