サーバー監視ツールを作ろう – 7日目「CPU検知」

2019年5月26日

テクノロジー プログラミング 特集

パソコンにとっての心臓部であるCPUを検知することで、サーバーの状態を把握する事は非常に有効です。 人間が心臓に負荷がかかると、息切れがして立っていられなくなるほどの疲労感になりますが、パソコンも同じでCPU使用率が100%に近くなると、ハードウェアの放熱も増え、処理速度も遅くなりがちになります。 CPUをあるだけ一杯使うというのではなく、常に余裕を持って使っていく事が、サーバー運用において、安定運用ができるという事なんですね。 ただし、どうしても瞬間的に負荷が増える時も発生するのですが、毎日定期的に発生しているようであれば、その期間の前後は、処理不可を抑えるように、サーバー数を増やしたり、処理を軽減するようなプロセスに切り替えるなどして、より安定運用できるように管渠言う変更をしていくのが、健全なサーバー運用と言えるでしょう。 今回は、そんな健康運用の為の健康診断としてのCPU検知を行ってみましょう。

cpuの値は"vmstat"で簡単に取得できる

vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 5572 92072 204680 1300848 0 0 4 2 7 28 0 0 99 0 0 サーバーターミナルで"vmstat"を実行するだけで、メモリやCPUの状態が確認できます。 CPUの箇所は、"us sy id wa st"という値が表示されていて、内容は以下のとおりです。
usカーネルコード以外の実行に使用した時間
syカーネルコードの実行に使用した時間)
idアイドル時間(率)
wa待ち時間
st仮想に使用した時間
実際のCPUの使用率は、"100% - id(アイドル率)"で考えるのがいいでしょう。 上記ログの場合は、id=99なので使用率は1%ということになります。 5分おきにこの値を計測してみると、1日の間で、度のタイミングで負荷が増しているかがわかるでしょう。 エクセルなどでグラフ表示してみると、サーバーの負荷傾向が目に見えて分かるので、その後の対策が立てやすくなるでしょう。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。