アーカイブ

vmstatコマンドでシステムの状況をモニター

linuxのvmstatコマンドでシステムの状況をモニターする方法を確認しました。
 

1)vmstatコマンドの概要


 
・メモリ使用量、ディスク使用状況、CPU使用率などの情報を表示。
・引数に数値nを指定するとn秒間隔に測定して結果を表示する。
 
(実行例)

$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0  97656 164588 151932 795708    0    0     4    11    0    0  1  0 99  0  0
 0  0  97656 164332 151940 795708    0    0     0    13   61   34  0  0 100  0  0
 0  0  97656 164456 151940 795708    0    0     0     0   63   32  0  0 100  0  0
 0  0  97656 164320 151944 795704    0    0     0    12  108   63  1  0 99  0  0
 0  0  97656 164376 151944 795708    0    0     0     0   61   32  0  0 100  0  0

 

2)表示結果の見方


 
①procs
 
r:実行待ちのプロセス数
b:ブロックされているプロセス数
 
・ブロックされているプロセスは、ハードウェア、特にディスク処理を待機しているため実行できない。
・bの値が高い場合は、ディスクがボトルネックとなっている可能性が高い。
・rがCPUコアの数より多い場合は、性能の低下を引き起こすので要注意。
 
②memory
 
swpd:仮想メモリ(スワップメモリ)がどれだけ使用されているか?
free:アイドルメモリ
buff:バッファとして使用されているメモリ
cache:キャッシュとして使用されているメモリ
 
③swap
 
si:スワップからreadされたバイト(/s)
so:スワップに書き込まれたバイト(/s)
 
・スワップが発生している場合は、物理メモリが不足している。ディスク待ちでブロックされているプロセス数が増加する。
 
④io
 
bi:ブロックデバイス(ハードディスク)からreadされたバイト(blocks/s)
bo:ブロックデバイス(ハードディスク)に書き込んだバイト(blocks/s)
 
・ディスクがボトルネックとなっている場合は、この数値を下げる対策を検討する。
 
⑤system
 
in:CPU割り込みの数(/s)
cs:コンテキストスイッチの数(/s)
 
・コンテキストスイッチは、CPUが処理するプロセスを切替えたり、割り込みを処理する場合などに行われる。この数が著しく高い場合は性能に影響が出る。
 
⑥cpu
 
us:非カーネルのユーザーコードで実行された時間
sy:カーネルのコードで実行された時間
id:アイドルタイム
wa:I/O待ちの時間
st:仮想マシンに使用された時間
 
・waが高い場合は、ioやswapが高くなっていないかチェックする。

関連記事の目次