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