vmstatコマンドの使い方を完全ガイド!初心者でもわかるLinuxのメモリとCPU監視方法
生徒
「Linuxでパソコンの動きが重いとき、原因ってどうやって調べるんですか?」
先生
「その場合はvmstatコマンドを使うと、メモリやCPUの状態を一度に確認できます。」
生徒
「メモリとCPUって何が違うんですか?」
先生
「メモリは作業机、CPUは作業する人のようなものです。机が狭かったり、人が忙しすぎると処理が遅くなります。」
生徒
「なるほど!それを一緒に確認できるんですね。」
先生
「その通りです。順番に見ていきましょう。」
1. vmstatコマンドとは?
vmstatコマンドは、Linuxでメモリ使用状況、CPU使用率、スワップ、プロセスの状態などをまとめて確認できる便利なコマンドです。
Linuxのパフォーマンス監視やトラブルシューティングでよく使われ、「パソコンが重い」「処理が遅い」といった問題の原因を見つけるために役立ちます。
特に初心者の方は、「どこが悪いのか分からない」と感じることが多いですが、vmstatを使えば全体の状態を一目で把握できます。
2. 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
1 0 0 123456 23456 345678 0 0 1 2 100 200 10 5 80 5 0
このように、多くの情報が表示されますが、最初は難しく感じなくて大丈夫です。重要なポイントだけ押さえていきましょう。
3. 表示される項目の意味をやさしく解説
vmstatの出力には、いくつかの重要な項目があります。
- r:実行待ちのプロセス数。多いとCPUが忙しい状態
- free:空いているメモリの量
- swpd:スワップ使用量
- si / so:スワップの読み書き
- us:ユーザー処理のCPU使用率
- sy:システム処理のCPU使用率
- id:CPUの待機時間
たとえば、freeが少ないとメモリ不足、rが多いとCPUが混雑している状態です。
4. リアルタイム監視する方法
vmstatは一定間隔で繰り返し表示することもできます。
vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
1 0 0 123456 23456 345678 0 0 1 2 100 200 10 5 80 5 0
0 0 0 123000 23000 340000 0 0 0 1 90 180 8 4 85 3 0
このコマンドは1秒ごとに情報を更新します。
リアルタイムで変化を見ることで、「どのタイミングで負荷が上がるか」を確認できます。
5. 回数を指定して監視する方法
無限に表示されるのが困る場合は、回数を指定できます。
vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
1 0 0 123456 23456 345678 0 0 1 2 100 200 10 5 80 5 0
0 0 0 123000 23000 340000 0 0 0 1 90 180 8 4 85 3 0
これは2秒間隔で5回だけ表示します。
ログとして確認したいときに便利です。
6. スワップの状態を見るポイント
スワップとは、メモリが足りないときにディスクを代わりに使う仕組みです。
机がいっぱいになったときに、床に資料を置くイメージです。
vmstat 1
r b swpd free buff cache si so
0 0 1024 1000 2000 3000 5 3
siやsoが増えている場合は、スワップが頻繁に使われている状態で、パソコンが遅くなる原因になります。
7. CPU使用率の見方
CPUの状態は、最後の列に表示されます。
vmstat
us sy id wa
20 10 60 10
それぞれの意味は次の通りです。
- us:アプリの処理
- sy:OSの処理
- id:何もしていない時間
- wa:待ち時間
idが少ないとCPUが忙しい状態です。
8. 他のコマンドとの違い
Linuxには他にも監視コマンドがあります。
- top:リアルタイムで詳細表示
- free:メモリだけ確認
- htop:見やすい画面表示
vmstatは軽くてシンプルなので、サーバー運用やトラブル時に特に重宝されます。
まとめ
本記事では、Linux環境でメモリ使用状況やCPU使用率、スワップの動作、プロセスの状態を一度に確認できる便利なコマンドであるvmstatコマンドについて、初心者の方でも理解しやすいように基礎から丁寧に解説しました。vmstatは、Linuxサーバー運用やパフォーマンス監視、システムトラブルの原因調査において非常に重要な役割を持つコマンドです。
特に、Linuxメモリ監視やCPU使用率確認、スワップ領域の使用状況を知ることは、システムが遅い、処理が重い、アプリケーションが固まるといった問題の原因を特定するうえで欠かせません。vmstatコマンドを使えば、これらの情報を一画面でまとめて確認できるため、初心者でも全体の状態を把握しやすくなります。
vmstatコマンドの基本的な使い方としては、単純にコマンドを実行するだけで現在の状態が表示されますが、秒数を指定することでリアルタイム監視が可能になります。例えば、1秒ごとに状態を確認することで、負荷がかかる瞬間や異常な挙動を見つけやすくなります。
vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
1 0 0 123456 23456 345678 0 0 1 2 100 200 10 5 80 5 0
また、回数を指定することで、一定回数だけデータを取得することも可能です。ログ取得や検証時にはこの方法が非常に役立ちます。
vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
1 0 0 123456 23456 345678 0 0 1 2 100 200 10 5 80 5 0
vmstatの出力結果で特に重要なのは、メモリの空き容量を示すfree、スワップ使用量を示すswpd、スワップの読み書きを示すsiとso、CPUの稼働状況を示すusやsy、idなどの項目です。これらを正しく理解することで、メモリ不足やCPU負荷の問題を素早く見つけることができます。
例えば、freeの値が極端に少ない場合はメモリ不足の可能性が高く、siやsoの値が増えている場合はスワップが頻繁に発生しているため、ディスクアクセスが増えて処理速度が低下している可能性があります。また、CPUのidの値が低い場合は、CPUが常に稼働している状態であり、負荷が高いと判断できます。
Linuxのパフォーマンスチューニングやサーバー監視を行ううえで、vmstatはtopやfreeなどのコマンドと組み合わせて使用することで、より詳細な分析が可能になります。軽量でシンプルなコマンドでありながら、システム全体の状態を把握できる点がvmstatの大きな特徴です。
日常的にvmstatコマンドを活用することで、Linuxシステムの状態を把握する力が身につき、トラブル発生時にも冷静に原因を切り分けることができるようになります。サーバー管理者やインフラエンジニアを目指す方にとって、必ず習得しておきたい基本コマンドの一つです。:contentReference[oaicite:0]{index=0}
生徒
「vmstatコマンドって、メモリとCPUの状態を一緒に見れるのが便利ですね。」
先生
「その通りです。Linuxのパフォーマンス監視では、メモリだけでなくCPUやスワップも同時に確認することが重要です。」
生徒
「freeが少ないとメモリ不足で、siやsoが増えるとスワップが使われているんですよね。」
先生
「よく理解できています。さらにCPUのidが低い場合は、CPUが忙しい状態ということも覚えておきましょう。」
生徒
「リアルタイムで監視するにはvmstat 1を使えばいいんですね。」
先生
「はい。1秒ごとの変化を見ることで、負荷がかかるタイミングを把握できます。トラブル調査にとても役立ちます。」
生徒
「これからLinuxサーバーを触るときは、まずvmstatで状態を確認してみます。」
先生
「それが良い習慣です。継続して使うことで、数値を見ただけで状態が分かるようになりますよ。」