お知らせ
2023.12.5(Tue)
目次
どうもこんにちは。三宮です。
今回はメモリ使用率やCPUの負荷を見る際に使う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
欄 | 記号 | 意味 |
---|---|---|
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でよく使うオプションをまとめておきます。
オプション | 内容 |
---|---|
delay(数値) | 指定したdelay秒ごとに表示を更新する。 例:vmstat 5 |
delay(数値) count(数値) | 指定したdelay秒ごとに表示を更新かつ、count回数分表示を更新する。 例:vmstat 5 3 |
-t | 日時表示する際に指定。 |
-S 単位 | メモリの表示単位を変更して表示する際に指定。 単位 k・・・KB K・・・KiB m・・・MB M・・・MiB |
便利なコマンドは今後もまとめていこうと思います。
それではまた。
《関連記事》