2011年1月19日水曜日

サーバ内で最低限取得すべきリソース(resource)情報


サーバのリソースを確認するためにある程度の情報はグラフ化しておくべきであろう。
だからといって、なにからなにまでグラフ表示させるのは大げさすぎる。
しかしながら、サーバにボトルネックが発生した場合には、
過去にさかのぼってシステムの状態をトレースし、原因をつきとめなければならない。

そのために、グラフ化させるまではないが、
サーバ内では定期的に細かい情報は取得しておくべきである。

自宅でのlinuxサーバでは何を取得しているかを参考までに記録しておく。
#!/bin/sh

LANG=C

TIME=`date +"%Y%m%d %H%M%S"`

DIR="/var/tmp/resource/"
HOSTNAME=`hostname`

PATH=$PATH:/usr/sbin
for CMD in "top -n 1 -b" "lsof -n" "uptime" "mpstat -P ALL 10 1" "iostat -x 10 2" "vmstat 10 2" "free" "df -P" "ps auxww -L" "netstat -an" "netstat -s" "ipcs" "w"
do

  NAME=`echo $CMD | cut -d ' ' -f 1`
  FILE=${DIR}/${HOSTNAME}_${TIME}_${NAME}.log
  $CMD >> $FILE

done
サーバ内のリソースの確認ポイントはここを参照のこと。


また、sysstatの情報もディフォルト10分から毎分に変更しておいた方がいいだろう。
# vim /etc/cron.d/sysstat
* * * * * root /usr/lib64/sa/sa1 -S DISK 1 1