vmstat
vmstat は、CPU・メモリ・I/Oの利用状況を調べるのに用いるコマンド。
実行例
$ vmstat 1 5 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 864 45868 11164 1021700 0 0 8 36 66 144 4 1 95 0 0 0 864 45372 11164 1022112 0 0 0 8 204 639 1 1 98 0 0 0 864 45372 11164 1022340 0 0 0 0 198 605 2 0 98 0 1 0 864 45372 11164 1022412 0 0 0 0 170 586 2 1 97 0 0 0 864 45372 11164 1022380 0 0 0 0 185 594 1 0 99 0
パラメータの意味
1行目 | 2行目 | 説明 |
---|---|---|
procs | r | CPU割り当て中、または、割り当て可能なプロセス数 |
b | 割り込み禁止(I/O待ちなど)をしているプロセス数 | |
memory | swapd | 使用している仮想メモリサイズ(KB) |
free | 空きメモリサイズ(KB) | |
buff | バッファキャッシュ(ブロックデバイス)に割り当てられたメモリサイズ(KB) | |
cache | ページキャッシュ(ファイル)に割り当てられたメモリサイズ(KB) | |
swap | si | スワップINメモリサイズ(KB/s) |
so | スワップOUTメモリサイズ(KB/s) | |
io | bi | ブロックデバイスに送られたブロック数(blocks/s) |
bo | ブロックデバイスから読み取ったブロック数(blocks/s) | |
system | in | 1秒あたりの割り込み回数 |
cs | 1秒あたりのコンテキストスイッチ回数 | |
cpu | us | ユーザのCPU利用率(%) |
sy | システムのCPU利用率(%) | |
id | CPUのアイドル率(%) | |
wa | I/O待ちCPU利用率(%) |
注目すべき箇所
1.CPUの状況
procs/r の値がCPUの数より大きい場合、実行プロセスがCPU待ちをしているということになる。CPU がどの処理で多くリソースを割いているかは、cpu/us、cpu/sy、cpu/wa の値でわかる。
2.I/Oの状況
procs/b の値が大きい場合、I/O待ちをしているプロセスが多いと言える。(通常は 0)
io/bi, io/bo の値でHDDなどの読み書きの負荷状況がわかる。
3.メモリ/スワップの状況
swap/si, swap/so が発生していると実メモリが不足していることがわかる。実メモリが不足すると仮想メモリが利用されるが、仮想メモリは低速でパフォーマンスを極端に低下させる原因になる。
4.その他
system/cs は、動作中の処理がパフォーマンスが出ているかどうかの指標になる。例えば DBの稼働状況を確認したい時に参考にしている。いくつが適正な値かは一概に言えないが、異常な状態と平常な状態では明らかに違う。