コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

vmstatを使ってみたら意外と指定できる項目が少なかったよ。

思いつきLinuxコマンドシリーズ2回目はvmstatです。
今回もmanコマンドに載っていることを試すだけなのでそれ以上の情報はありませんので悪しからず。

vmstatの基本

まずは、単純にvmstatを叩いて何が表示されるかを確認する。

# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  0      0 574612  13812 326068    0    0  1046   118 1048   249  1 28 63  8

こんな感じの情報が表示される。各項目の意味は以下のとおり。

項目 説明
r 実行待ちプロセス数。
b 割り込み不可能なスリープ状態にあるプロセス数。
swpd 仮想メモリの総量(kB)。
free 空きメモリの量(kB)。
buff バッファに用いられているメモリの量(kB)。
si ディスクからスワップインされているメモリの量(kB/s)。
so ディスクにスワップしているメモリの量(kB/s)
bi ブロックデバイスに送られたブロック(blocks/s)。
bo ブロックデバイスから受け取ったブロック(blocks/s)。
in 1秒あたりの割り込み回数。クロック割り込みも含む。
cs 1秒あたりのコンテキストスイッチの回数。
us ユーザー時間(CPUの総時間に対するパーセンテージ)。
sy システム時間(CPUの総時間に対するパーセンテージ)。
id アイドル時間(CPUの総時間に対するパーセンテージ)。
wa IO待ち時間(CPUの総時間に対するパーセンテージ)。

上記の例だと、waが8パーセントあるがVM上であるのと、起動直後であるためだと思われる。あとは、目立って高い数値はない。
このように、vmstatでは、プロセスの状態からメモリ、ディスクIO、CPUの状態まで一発で統計をとることができる。
そのため、適切なみかたを知っている場合にはパフォーマンスを見る上で非常に重要な指標となる。

オプション

オプションと言っても種類は少ない。例えば、以下のように指定すると1秒間間隔に5回統計を取る。

# 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
 1  0      0 533108  15816 378336    0    0   160    40 1021    79  0  5 94  1
 0  0      0 533108  15816 378336    0    0     0    48 1035    51  0  0 100  0
 0  0      0 533108  15816 378336    0    0     0     0 1004    55  0  0 100  0
 0  0      0 533108  15816 378336    0    0     0     0 1029    43  0  1 99  0
 0  0      0 533108  15816 378336    0    0     0    48 1007    51  0  0 100  0