最近ページビューが上昇してきてうきうきしていますが、反面サーバの負荷が大きくなってきたようです。私がサーバをちょくちょく覗く度に、ハードディスクのアクセスランプが付きっぱなしになっています。何ででしょうかね?
と言うことで、軽く調査してみました。結果によって対処が大きく変動するんで、これは重要な作業です。でも、そこまで時間はかけてられないので、簡易的にしました。
調査内容は、至って簡単で、サーバの平均負荷を見るだけです。基本的に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日です。
これが採取したデータから生成したグラフです。グラフプロットには、Micrsoft Excelを使いました。
ぱっと見た感じ、パルス状に負荷が大きくなるときがあります。いったい何でしょうかね?
4時から7時までの高負荷帯は、ウイルススキャンと侵入検知システムが動作しているためです。しかし、3時間も高負荷が続いていますがどうなんでしょうか?
Load avg は、プロセスの待っている個数です。よってシングルCPUの場合は、1を目安にするべきです。また、高性能なCPUなら、1コアに対して複数処理させても処理が進見ますが、このサーバはPentium IIIなので、無理です。
この後、他のログファイルを調べてみたところ、パルス状の高負荷は、不正アクセスだと予測しました。この日は、4000回ほどftpやsshでログインしようとした形跡がありました。迷惑なことです。対策しないといけません。これは、後日ということで。。
一時的な高負荷は、無視できると考えても、4時からのメンテ時間が長すぎです。これはサーバのスペック不足です。
そろそろサーバを変更すべきなんでしょうね。ブログ書いているときも、遅いと感じますし。なので、サーバを1台増やすことにします。詳しくは、購入してからやります。
おまけ(他のデータ)
$ df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 111G 14G 92G 13% / /dev/hda1 99M 24M 71M 26% /boot tmpfs 188M 0 188M 0% /dev/shm $ free total used free shared buffers cached Mem: 383756 378972 4784 0 10788 42848 -/+ buffers/cache: 325336 58420 Swap: 786424 654268 132156 $
ストレージは、14GB使用中でした。これだけでウイルススキャンと侵入検知に3時間かかっているとは・・・
あとメモリの空きが、58MBほどしかないですね。スワップも650MB使っているようです。なんか異常な気がしますが・・・
コメントする