【Linuxコマンド:vmstat】vmstatコマンド結果の内容をまとめました

どうもこんにちは。三宮です。
 
今回はメモリ使用率やCPUの負荷を見る際に使うvmstatコマンドについてまとめようと思います。

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 st
 0  0      0 232984 257136 107284    0    0     7    38    3    4  0  0 100  0  0

vmstatコマンド結果内容の意味

記号 意味
procs r 実行キューに入っている、実行中や実行待ちのプロセス数の合計です。通常は0~2程度ですが、この数値が大きいとサーバーが重く感じる可能性が高いです。
b スリープ状態のプロセス数。つまりI/O完了待ちになっているプロセスです。
memory swpd 使用中のスワップ(仮想メモリ)の量。
free 空きメモリの量。未使用状態なメモリの量ですが、cacheとの兼ね合いもあるため、ここが低いからメモリ不足とはならないので注意が必要です。
buff 使用中のバッファの量。メモリ全体がひっ迫すると、buff領域からメモリを削って使用します。
cache 使用中のキャッシュの量。キャッシュ領域のため大きく感じる場合もありますが、メモリが足りない場合はこちらの値を削って使用することとなるため、数値だけでメモリ量を判断する必要はないかと思います。
swap si ディスクよりスワップインされているメモリの量。メモリ不足の際に使用するスワップ領域の操作で値が変わります。そのため0が基本値となります。
so ディスクにスワップアウトされているメモリの量。メモリ不足の際に使用するスワップ領域の操作で値が変わります。そのため0が基本値となります。
bi HDDなど、ブロックデバイスからの読み込み数。
bo HDDなど、ブロックデバイスへの書き込み数。
system in 1秒あたりの割り込み処理回数。
cs 1秒あたりのコンテキストスイッチの処理回数。コンテキストスイッチ=プログラム実行を切り替えること。この数値が大きいと頻繁にCSを繰り返していることが考えられるため、処理のロスが大きくなってい待っていることを示します。
cpu us ユーザーのCPU使用率。プログラムが動いている時間を示しています。
sy カーネルのCPU使用率。OS等カーネルが絡む処理に使用した時間になります。
id アイドルしている時間。CPUが開いていた時間を示しています。
wa ディスクIOの待ち時間。
st 仮想環境実行時、OSよりCPUリソースを割り当てれなかった時間。

よく使うvmstatオプション

サーバーの状態を監視する際につかうvmstatでよく使うオプションをまとめておきます。

オプション 内容
delay(数値) 指定したdelay秒ごとに表示を更新する。
例:vmstat 5
delay(数値) count(数値) 指定したdelay秒ごとに表示を更新かつ、count回数分表示を更新する。
例:vmstat 5 3
-t 日時表示する際に指定。
-S 単位 メモリの表示単位を変更して表示する際に指定。
単位
k・・・KB
K・・・KiB
m・・・MB
M・・・MiB

最後に

便利なコマンドは今後もまとめていこうと思います。
それではまた。
 
 
 
 
《関連記事》

知っていると便利なVimコマンド
技術
2022.5.27(Fri)

ログ調査で大活躍! 知っていると便利なVimコマンド【検索 / コピー / ドキュメント操作】

#まとめ#プログラム#ツール

使えるLinuxコマンド20選
技術
2016.3.4(Fri)

サーバーを操作せざるを得なくなってしまったプログラマーに捧ぐ 使えるLinuxコマンド20選

#まとめ

記事をシェア
MOST VIEWED ARTICLES