プロフィール

だんでぃ

web拍手作った人
web拍手管理チームの一員

webデザイナーでミュージシャンだと言い張って聞かない36歳。

サイタマー出身

好きなもの
コーラ、PC

苦手なもの
トーク、運動全般
すぴばる
最新記事
リンク
カレンダー
<< 2024/04 >>
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
月間アーカイブ
QRコード
QR code
RSSフィード

T Y
サーバーのCPU負荷監視
2010/05/04 16:32
たまには技術者っぽいこと話してみようかしら。

web拍手が動作しているサーバーは、数台のマシンを目的別に稼動させているわけですが、あとどれくらい余力を残しているのか、あとどれくらい経てば設備投資をしないといけないのかといった目安のためにログを取っています。

あんまり詳しく書いちゃうとセキュリティ的にまずいような気がしなくもないので、雰囲気で書きますけど、数分置きにCPUやメモリやネットワーク転送量なんかの記録を取って、あとでグラフで見れるようにしているわけです。

んで、CPUの負荷を測定するためにLINUXの「vmstat」ってコマンドがありまして、これを実行すると実行した瞬間のCPUの色々な情報が見れるんですが、その中に「CPUのアイドル率」ってのがあるんです。

一言で言っちゃえば「あと○%余力を残してます」っていう数値でして、しばらくはこの数値をログに保存していました。


んで、ちょっと前に内部のシステムを書き換えた時に、露骨に負荷が高くなってしまったことがありまして。

普段僕はサーバーの監視をするときは、「TOP」コマンドを叩いてリアルタイムで数字を監視してるんですけど、そこでCPUの負荷が100%を振り切ってしまったのです。

大慌てで負荷が高そうな処理を組み直して、通常の数値に戻ったのですが、あとでその付近のログを見てみても「CPUアイドル率97%」とか素っ頓狂な数字を出してくるんです。

色々試してみたところ、「vmstat」で得られる数字と「top」で得られる数字が全然合っていないことが分かりまして。というか、「vmstat」の数字が全然アテにならないということが判明しました。

仕方が無いので、ログを「uptime」コマンドで得られるロードアベレージを記録するようにしたら、ちゃんと期待通りのグラフを描くようになりました。

「vmstat」で取ってたころは、ピークタイムだろうがなんだろうが一直線のグラフだったので、おかしいなぁと思ってはいたのですが、あんまり色々な情報を鵜呑みにしてはいけませんね。


なんだか小難しい上に長文になってしまいました。普段おバカなことばっかり書いてるから、たまにはいいよね!

技術的な話