とあるサーバでロードアベレージが上がったときに何が起きているか知りたくなったので書いてみました。他に似たツールがあれば教えて欲しいです

インストール

インストールはcpanmを使います

$ cpanm App::LoadWatcher

cpanmが入っていないなら

$ curl -L http://cpanmin.us/ | perl - App::LoadWatcher

とすると楽です

使い方

ロードアベレージが「0.6」以上のときにuptimeを表示するには

$ load_watcher -l 0.6  -- uptime

こんな感じです。ハイフン2つ書いたあとにコマンドを書きます

オプションは

-load -l     = load average    ロードアベレージの閾値
-interval -i = interval second ロードアベレージを確認する間隔(秒)
-continue -c                   デフォルトではコマンド実行後に終了するが、終了させずに繰り返し動作させる

となります

今回、負荷の上がったときのMySQLの通信を見たかったので

$ sudo load_watcher -l 1 -- 'tcpdump -s 65535 -x -nn -q -tttt -i any -c 100000 port 3306 > /tmp/mysql.tcp'

こんな感じで実行しました。



ちなみに最初はこんなシェルを書いて実行してた。

while :
do
  LOAD=$(cat /proc/loadavg |awk '{print $1*100}')
  if [ $LOAD -gt 80 ]; then
      tcpdump -s 65535 -x ...
      exit
  fi
  sleep 5
done

シェル力が低くてすみません

このブログ記事について

このページは、Masahiro Naganoが2012年7月26日 12:09に書いたブログ記事です。

ひとつ前のブログ記事は「Net::DNS::Lite と resolv.conf の関係 - Net::DNS:Lite 0.09 の変更点について」です。

次のブログ記事は「Intel SSD 910 800GB のベンチマーク」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja