さくらインターネットのVPS(仮想専用サーバー)のサーバー・ネットワークの監視(リソース情報、Uptime Robot)

さくらのVPS
スポンサーリンク

当ブログはさくらインターネットのVPS(仮想専用サーバー)を使っているのですが、時々、CPU100%負荷になってアクセスが遅くなります。
現在原因を調査しているところですが、まだ抜本的な対策が出来ておりません。
そこでとりあえず、サーバー・ネットワークの監視体制をしっかりしたいと思います。

スポンサーリンク

さくらインターネットVPSのコントロールパネルのリソース情報

さくらインターネットVPSのコントロールパネルからサーバーの状況をある程度なら監視可能です。
以下は私のVPSのリソース情報です。
この情報は過去1週間までなら見ることが可能です。

CPUがある時間帯で2.0k msecとなっていることがわかります。
またDISK I/Oが10Mも発生していることがわかります。
このタイミングでなぜ負荷が増大するのか、また、この値は何を意味するのかよくわからないのでさくらインターネットに問い合わせてみました。
以下の通り、ご返答をいただきました。

VPSコントロールパネルのCPUグラフにつきましては、ホストサーバ上で
動作しているお客様のVMプロセスがCPUを使用した時間を表しております。
お客様のご推察通り、仮想CPUコア数×1000msec = 最大使用時間(msec)
でございますため、2000msecであれば、上限値に達していた状態で
ございます。
また、ディスクI/O負荷の上昇でございますが、メモリ不足を原因として
ディスクI/O負荷が高くなることもございます。
メモリ使用量の多いプログラムなどを動作させている場合は、プログラムの
設計を見直す、複数のサーバにて負荷を分散させる、アクセス数の多いコン
テンツは静的コンテンツに切り替えるなど、メモリ使用量について改善を
測っていただくことをご検討ください。
なお、データベースのご利用により、処理が増えてきますとメインメモリが
消費されSwapメモリが使用される状況が発生いたします。
Swapメモリはメインメモリに比べ速度が遅いメモリであり、頻繁に利用
される状況が発生しますと、仮想サーバのパフォーマンスが大幅に低下
いたします。
現在のサービスを継続して利用される場合は、設置されているコンテンツの
チューニングなどもあわせて行っていただきますよう、お願いいたします。

1コアなら1.0k msecがCPUの最大使用時間と考えて間違いないようです。
私のサーバーはCPUが2コアありますが、この時間帯では2.0k msecとなっていたので、CPUがフル活動していて、他のアクセスなどを処理できなかったようです。
原因としてApache以外のプロセスがCPUを占有しているとは考えにくいので、Apacheのチューニングの余地がないか検討しているのですが、とりあえず、サーバー・ネットワーク監視ツールを導入することにしました。

サーバー・ネットワーク監視ツール Uptime Robot

サーバーネットワーク監視ツールとしては、オープンソースのNagiosが有名ですが、Nagiosを導入するのは少し手間がかかるので、もう少し簡単に導入できるツールを探してみました。
調査したところ、Uptime RobotというASPサービスが無料で手頃に導入できることがわかりました。
下記のURLからSign-up(free)を押してアカウントを作成します。
https://uptimerobot.com/

ログインしてダッシュボードからモニターを追加します。
15分おきにHTTPで自分のサーバーのURLをチェックすることとします。
また、アラートが発生した時に、自分のメールアドレスに届くように設定します。

これでUptime Robot ネットワーク監視サーバーの設定は完了です。
Nagiosのインストール&設定で苦労したことがあるので、とても簡単でびっくりです。
Uptime RobotではHTTPでのサーバー確認以外にHTTPS、Keyword、Ping、任意のPortチェックが可能です。
Keywordは任意のキーワードが含まれる時だけアラートが届くようです。

Uptime Robotを導入してわかること

ダッシュボードから以下のようにレスポンスタイムや死活状態が視覚的にわかります。
私のサイトの場合、24時間を通して、HTTPで約5秒から25秒でレスポンスが返ってきていることがわかります。

 

また、サーバーがダウンすると以下のメールが届きます。

Hi,
The monitor httpcheck (http://xxx.yyy) is currently DOWN (Connection Timeout).
Uptime Robot will alert you when it is back up.
Cheers,
Uptime Robot
http://www.uptimerobot.com
http://twitter.com/uptimerobot

サーバーが復旧すると以下のメールが届きます。

Hi,
The monitor httpcheck (http://xxx.yyy) is back UP (HTTP 200 - OK) (It was down for 59 minutes and 37 seconds).
Cheers,
Uptime Robot
http://www.uptimerobot.com
http://twitter.com/uptimerobot

サーバーのネットワークが監視出来ていてダウンするとすぐに連絡が来ると思うと少し心の安心ができます。

今後のサーバーの負荷対策

Apacheのチューニングを試そうとは思っていますが、nginxも試そうかなとも思っています。
先日、著名なサイトのWEBサーバーを調べてみました(YahooやGoogleのWEBサーバーの種類とバージョンを調べる)が、Yahoo Japanがnginxを使っていたのが衝撃的でした。