最近ページビューが上昇してきてうきうきしていますが、反面サーバの負荷が大きくなってきたようです。私がサーバをちょくちょく覗く度に、ハードディスクのアクセスランプが付きっぱなしになっています。何ででしょうかね?
と言うことで、軽く調査してみました。結果によって対処が大きく変動するんで、これは重要な作業です。でも、そこまで時間はかけてられないので、簡易的にしました。
調査内容は、至って簡単で、サーバの平均負荷を見るだけです。基本的にCPUの利用率を見るわけです。今回ハードディスクのアクセスがどうのこうのって話で対象が違うような気がしますが、あくまで全体としてみるので気にしません。
調査方法は、シェルスクリプトでcronを使ってやります。SNMPとかMRTGとかを使った方が良いのでしょうが、サーバのシステムをあまり触りたくないので、この方法でやります。
使ったシェルスクリプトが以下の通りです。
#!/bin/sh
if [ $# -lt 1 ]; then
exit 1
fi
if [ ! -f $1 ]; then
echo 'Date,Time,Load Avg (1 min),Load Avg (5 min),Load Avg (15 min),Thread,Last PID' > $1
fi
echo `date +%Y/%m/%d`,`date +%H:%M`,`cat /proc/loadavg | sed -e 's/ /,/g'` >> $1
仕組みは、/proc/loadavg から平均負荷を読み込んで、日時と一緒にファイルに出力するだけです。
使い方は以下の通りです。
$ ls
loging_loadavg
$ ./loging_loadavg logfile
$ ls
logfile loging_loadavg
$ cat logfile
Date,Time,Load Avg (1 min),Load Avg (5 min),Load Avg (15 min),Thread,Last PID
2010/01/26,23:01,0.00,0.00,0.00,3/90,3516
$
loging_loadavg がシェルスクリプトで、引数にログファイルを指定して実行します。すると、カンマ区切りで出力されます。おまけで、他のデータも付いてきます(消すのが面倒だった)。
これを使ってロギングしたデータがあります。対象日は、2010年1月25日です。