CPUにはユーザーモードとシステムモードがあることをご存知でしょうか。
まずは以下のvmstatコマンドの実行結果をご覧ください。
1 2 3 4 5 |
# vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----<span style="color: #ff0000;">cpu</span>----- r b swpd free buff cache si so bi bo in cs <span style="color: #ff0000;">us</span> <span style="color: #ff0000;">sy</span> id wa st 0 0 0 101088 178544 1011300 0 0 0 3 1 2 0 0 100 0 0 # |
「cpu」と書かれた箇所に「us」「sy」とあります。この「us」が「ユーザーモード」を、「sy」が「システムモード」を表しています。
「ユーザーモード」はユーザープログラム、つまりは通常のアプリケーションが動作するモードのことです。
「システムモード」はシステム、つまりカーネルが動作するモードのことです。
vmstatでは、「us」「sy」「id」「wa」「st」の合計が100になるように表示されます。
ちなみに、「id」はアイドル時間、「wa」はI/O待ち時間です。
「st」は「stolen time」のことで、仮想マシンとして動作している際に表示される項目です。「盗まれた時間」の名前の通り、このサーバで使えなかった時間(=他のサーバで使用されていた時間)です。
以下ではsarコマンドの結果を示しています。
1 2 3 4 5 6 7 8 |
# sar ~省略~ 10:00:01 PM CPU <span style="color: #ff0000;">%user</span> %nice <span style="color: #ff0000;">%system</span> %iowait %steal %idle 10:10:01 PM all 0.26 0.00 0.14 0.01 0.12 99.48 10:20:01 PM all 0.41 0.00 0.18 0.01 0.15 99.25 # |
「%user」がユーザーモード、「%system」がシステムモードです。
「%iowait」はI/O待ち、「%steal」はStolen time、「%idle」はアイドル時間です。
vmstatの場合同様、各項目の合計が100になるようになっています。
(表示される数値は四捨五入されるので、正確に100にはならない場合もあります)