CPUの監視でCPUの監視で必要な知識をざっくりと触れた。

それを踏まえた上で、Muninの各項目を見ていく。


munin_cpu1


systemはシステムモードのことで、

おそらくカーネルモードについてのことだろう。


一方、userはユーザモードとなる。


niceはナイス値のことで、

実行中のプログラムであるプロセスの優先度のこと

プロセスは常に複数あり同時並行で実行されている。


Muninのniceは優先度の低い実行中のプロセスがいくつあるか?となる。


idleは未使用の状態

上の図だと全部が未使用なのでまだまだ余裕ということがわかる。


iowaitはI/O待ち時間

irqは割り込み処理に費やした時間

softirqはソフト割り込みに費やした時間


ソフト割り込みとは何だろう?と調べてみたら、

割り込みにはハードウェア割り込みとソフト割り込みがあるのね。


ここらへんは深いので説明は端折って、

ここではirqとsoftirqを合わせて何らかの割り込みがあったとしておこう。


stealはMuninの説明を読むと、

仮想化環境においてアプリケーションの方で実行可能なタスクがあったけど実行されなかった時間とある。


サーバ会社からサーバを借りた時、マシンまるまる一機借りることはなく、

ハイスペックなマシンをハイパーバイザ型やコンテナ型といった形で区切って専用サーバのように使用する。

仮想的な専用サーバでVPSサーバというのが流行っている。

※VPSはvirtual private serverの略

DockerでPHP7の環境を構築してみる


話はstealに戻るけど、

仮想化環境でタスクがあったにも関わらず実行出来なかったというのは、

仮想化環境を作るためには当然元になるハイスペックなマシンがあるわけで、

そのマシンにもOSがインストールされている。


このOSのことをホストOSと呼び、仮想化するためのソフトを動かしている。

ホストOSがCPUを使用すると仮想化CPUがリソースを使用できなくなり、

仮想化CPUがタスクを持っているにも関わらず実行できないという症状になるらしい。


stealは上記の状態であった時間を示している。


最後にguestだけど、

仮想化環境の方のOS(ゲストOS)が使用している時間で、

Webアプリが使用しているCPUの時間と見て良いはず。


ざっくりとだけど、

CPUについての各項目の事がわかったので、

次はO'Reilly Japan - 詳解 システム・パフォーマンスに従って、

ファイルシステム周りを見ていこうかと