目標
- vmstatコマンドについて理解する
vmstatコマンド
vmstat(Virtual Memory Statistics)は、システムのリソース(メモリ、CPU、入出力、プロセスなど)の状態を表示するユーティリティです。主にLinuxやUnix系システムで使用され、システムパフォーマンスを監視する際に非常に役立ちます。
vmstatコマンドは、システムの状態をリアルタイムで監視するのに適しており、特にメモリ関連の問題や、CPUの負荷状況、I/O(入出力)の状況などを把握するのに便利です。
vmstat コマンドの使い方
vmstat コマンドの基本
vmstat コマンドの使い方は次の通りです。
vmstat [interval] [count]
- interval: 出力を表示する間隔(秒単位)。例:1秒ごとに更新。
- count: 表示回数。例:5回だけ表示。
例えば、1秒ごとに5回の出力を表示する場合は、次のように実行します。
vmstat 1 5
vmstatの出力内容
vmstatの出力は複数の列に分かれており、システムの状態をリアルタイムで示します。代表的なフィールドは次の通りです。
- プロセス関連
- r: 実行中のプロセス数(RUN queueにあるプロセス数)。
- b: I/O待ちのプロセス数(ブロック状態のプロセス数)。
- メモリ関連
- swpd: 使用中の仮想メモリの量(スワップ領域)。単位はKB。
- free: 空きメモリの量(物理メモリの空き)。単位はKB。
- buff: バッファキャッシュのサイズ。単位はKB。
- cache: ページキャッシュのサイズ。単位はKB。
- スワップ関連
- si: スワップイン(ディスクからメモリへのデータの読み込み)量(KB/s)。
- so: スワップアウト(メモリからディスクへのデータの書き込み)量(KB/s)。
- システム関連
- in: 割り込みの回数(秒単位)。ハードウェアやソフトウェアによる割り込み。
- cs: コンテキストスイッチの回数(秒単位)。プロセスの切り替え。
- CPU関連
- us: ユーザ空間でのCPU時間(%)。
- sy: カーネル空間でのCPU時間(%)。
- id: アイドルCPU時間(%)。
- wa: I/O待ちのCPU時間(%)。
- st: 他の仮想マシンに割り当てられたCPU時間(%)※仮想化環境の場合。
出力例
以下はvmstatコマンドを実行した際の出力例です。
$ 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 st
1 0 10240 33256 2640 16592 0 0 10 5 180 200 2 3 94 1 0
2 0 10240 33256 2640 16592 0 0 12 7 200 210 3 4 93 0 0
0 0 10240 33256 2640 16592 0 0 8 4 180 190 2 2 96 0 0
1 0 10240 33256 2640 16592 0 0 11 6 190 200 2 3 94 1 0
0 0 10240 33256 2640 16592 0 0 10 5 180 190 2 3 94 1 0
このコマンドは、システムのパフォーマンスに関する基本的な情報を表示してくれます。出力には、CPUの使用状況やシステムの負荷などが含まれます。
ただし、上記のコマンドでデータが表示されない場合は、sysstatサービスが動作していないか、データ収集の設定が無効になっている可能性があります。
Linux 5.8.0-53-generic (ubuntu) 07/08/2025 _x86_64_ (4 CPU)
11:03:20 AM CPU %user %nice %system %iowait %steal %idle
11:04:20 AM all 10.00 0.00 5.00 2.00 0.00 83.00
11:05:20 AM all 15.00 0.00 6.00 3.00 0.00 76.00
11:06:20 AM all 20.00 0.00 7.00 4.00 0.00 69.00
11:07:20 AM all 18.00 0.00 6.00 3.00 0.00 73.00
11:08:20 AM all 22.00 0.00 8.00 3.00 0.00 67.00
Average: all 17.00 0.00 6.00 3.00 0.00 74.00
各列の説明(例)
- procs
- r: 実行中プロセス数
- b: I/O待ちプロセス数
- memory
- swpd: スワップ領域に使われているメモリ
- free: 使用可能なメモリ
- buff: バッファキャッシュに使われているメモリ
- cache: ページキャッシュに使われているメモリ
- swap
- si: スワップインの速度(KB/s)
- so: スワップアウトの速度(KB/s)
- io
- bi: ブロックイン(ディスクからメモリへの読み込み)速度(KB/s)
- bo: ブロックアウト(メモリからディスクへの書き込み)速度(KB/s)
- system
- in: 割り込み回数(秒単位)
- cs: コンテキストスイッチ回数(秒単位)
- cpu
- us: ユーザ空間でのCPU使用率(%)
- sy: カーネル空間でのCPU使用率(%)
- id: アイドル状態のCPU使用率(%)
- wa: I/O待ちのCPU使用率(%)
- st: 仮想マシンでのCPU使用率(%)
使用例
- システムの全体的なパフォーマンスを監視:
- 「vmstat 1 10」で1秒ごとに10回の出力を表示し、システムのパフォーマンス(CPU、メモリ、I/O、スワップなど)を監視できます。
- スワップの使用状況をチェック:
- vmstatの出力でsi(スワップイン)とso(スワップアウト)を監視することで、システムがメモリ不足でスワップを使用していないか確認できます。スワップの利用が頻繁に発生している場合、メモリ不足の兆候です。
- CPUの負荷を確認:
- us(ユーザCPU)とsy(カーネルCPU)をチェックすることで、ユーザプロセスやカーネルがどれくらいCPUを使用しているか確認できます。id(アイドル時間)が低い場合、CPUが忙しくなっていることを意味します。
vmstatコマンドのまとめ
vmstatは、システムのパフォーマンスやリソース利用状況を監視するために非常に便利なツールです。定期的に使用することで、メモリやCPUのリソース不足、I/Oの問題、スワップの使用状況などを早期に発見し、システムの最適化に役立てることができます。
今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...

【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...