Home > 保険システム開発室NEWS > MRTGによるリソース監視

MRTGによるリソース監視

2008-10-24 08:09

もはや定番ですが、サーバのリソース監視ツールはMRTGを使用しています。 MRTGとはサーバのリソース情報をグラフ化してくれるツールです。
サーバの状態を一時的ではなく継続的な視点で分析するには便利です。 ネットワークトラフィックやディスク容量、空メモリなど様々なリソースを監視していますが、 一番気になるのはなんといっても負荷(ロードアベレージ)です。

先日のことですが、あるサーバが上図のように負荷(ロードアベレージ)が一時間毎に一時的に高くなることが認められまして 少し調査してみました。まぁここまでハッキリ「一時間毎」という波形が出ると、原因は当然Cronによるなんらかの定期処理である事が疑われますので、そのセンで調べたらあっさり分かりました。

このサーバはとあるホスティング会社から借りている専用サーバなのですが、管理ツールからバーチャルホストを追加すると 自動的に様々な設定がなされます。その中の一つとしてAWStatsというログ解析ツールの設定も自動的にやってくれます。 このAWStatsのログ解析処理が一時間に一回、同じ時間に実行されるようにCronに設定されるわけです。

これでは例えばバーチャルホストを5つ追加すると、毎回同じ時間にログ解析処理が5プロセス同時に実行されることになります。 ログ解析はファイルI/Oと文字列解析の大量処理になりますので、これではロードアベレージが急上昇するのも当然です。

Cronの設定ファイルを手動で変更し、とりあえず各バーチャルホスト毎のAWStatsのログ解析処理を少しずつズラして実行するようにしたところ上記のように負荷が平準化されました。
今後このサーバでバーチャルホストを追加した場合は、Cronに自動的に出力されるログ解析の処理時間を手動でズラす必要がありますね。 というより、一時間に一回のログ解析処理が必要なのか?という疑問もあります。多くとも一日2回で十分なんじゃないか、と思いますが その辺はサーバの負荷の様子を見て調整しようと思います。

最近のサーバ管理ツールはWeb上から設定が何でも出来てしまい、面倒な作業も全てやってくれて便利ですが、 今回の件に関してはバーチャルホストに追加したらCronにログ解析処理を直接追記するのではなく、 Cronから呼ばれるシェルスクリプトを一つ用意して、 そこに対してログ解析処理を追記するようにすればよかったのにと少々残念に思いました。

Posted by T.S

このページの上部へ