Webサーバに限らずだけど、サーバのパフォーマンス測定をするときには、CPU利用率やLoadAverageなどの値を測定しておくとベター。そういうデータがあれば、httpdのセッション数の時間推移とCPU利用率の推移を突き合わてやることで、そのマシンの性能一杯を使っているのか、余裕で動いているのかの判断がしやすくなるわけだ。
Linuxであれば"sar"というコマンドを使えば、比較的簡単にCPU利用率やLoadAverageのデータを取得できるので、それを使うのがいいと思うし、自分でもそれを使ってデータ取りしていることがほとんど。
"sar
"は、sysstatというパッケージに含まれているので、Debianだったら
aptitude install sysstat
CentOSでも
yum install sysstat
でインストールは完了。
使い方は簡単で
sar 10
とコマンドラインから実行すると、
# sar 10
Linux 2.6.32-5-amd64 (nexus01.downtown.jp) 10/09/10 _x86_64_ (2 CPU)
23:26:30 CPU %user %nice %system %iowait %steal %idle
23:26:40 all 5.05 94.10 0.85 0.00 0.00 0.00
23:26:50 all 0.10 99.65 0.25 0.00 0.00 0.00
^C
こんなふうに、10秒おきのCPU利用率のデータを表示してくれる。
でも実際には、あとから他のデータと組み合わせて使いたいわけだから、測定したいデータをファイルに出力したほうが良いので、
sar -o test.file 10 120 2>&1 > /dev/null &
という形で実行してやれば、"test.file"というファイルに10秒おき×120回で20分間のデータが取得できる。(最後に、"2>&1 > /dev/null &
"をつけておくと、標準出力に結果が表示されないようになるし、バックグラウンドでデータを採ってくれる。)
取得間隔や回数は測定したい内容によって任意に変わるので、この辺は何回か試してみて、どのぐらいが値が良いのかを探って置くのが良いでしょうね。
結果を表示させたければ
sar -f test.file
と実行すれば、CPU利用率を表示してくれるので、あとはそれをログの集計結果と付き合わせることで、パフォーマンスを定量的に分析できる、と。
CPU利用率やLoadAverage以外にも、NICの通信量などのデータとしても取得しているので、適切なオプションを付けて実行すれば、それらのデータも見れるし、sysstatをインストールしておくと自動的に日々の動作状況も記録してくれるので、定常的な状態確認にも使えて便利。
なので、個人的にはインストールしておくことをお薦めしたいユーティリティだったりする。
トラックバック(1)
数年前に書いたエントリーをちょっとアップデートしておこう、ということで。 サーバの稼働状況を把握するためのツールとしては、mrtg とか、 munin と... 続きを読む
コメントする