Aerial view of a man using computer laptop on wooden table
Linuxサーバーのパフォーマンス監視を行う上で、CPUの使用率は非常に重要な指標の一つです。特にシステムのレスポンスが遅くなったり、予期しない負荷がかかったときには、CPUがどのように利用されているかを素早く確認する必要があります。
そんなときに活躍するのが「mpstat」コマンドです。mpstatはCPU全体および各コアの使用状況を詳細に表示してくれる便利なツールであり、多くのLinuxディストリビューションで利用可能です。
この記事では、「mpstat」コマンドの基本的な使い方から、表示内容の読み解き方、実践的な使用例までをわかりやすく解説していきます。システム管理者の方はもちろん、Linuxを学び始めたばかりの方にも役立つ内容となっていますので、ぜひ最後までご覧ください。
mpstatは、sysstat
パッケージに含まれているCPU使用率を表示するコマンドです。マルチプロセッサ(複数CPUコア)環境において、各CPUの使用状況を詳細に把握できるのが特徴です。
基本的なコマンド構文は以下の通りです。
mpstat [オプション] [間隔] [回数]
たとえば、
mpstat 5 3
と入力すれば、5秒ごとに3回、CPUの使用状況を表示します。これはリアルタイム監視に便利な使い方です。
mpstatは、コマンドを1回実行するだけで、全CPU平均や各CPUの情報を表示できるため、他のtopコマンドやvmstatよりも詳細でCPUに特化した情報を確認できます。
ほとんどのLinuxディストリビューションでは、mpstatはデフォルトでインストールされていないことがあります。その場合は、sysstat
パッケージをインストールすることで利用可能になります。
sudo yum install sysstat
sudo apt-get install sysstat
インストール後、mpstat
コマンドを実行できるようになります。インストールが完了したら、以下のコマンドでバージョンを確認しておきましょう。
mpstat -V
以下は、mpstat
コマンドを実行したときの出力例です。
$ mpstat
Linux 5.15.0-105-generic (hostname) 2025年04月06日 _x86_64_ (4 CPU)
05時35分19秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05時35分19秒 all 2.45 0.00 0.62 0.10 0.00 0.04 0.00 0.00 0.00 96.79
各項目の意味は以下の通りです。
ここで注目すべきは「%idle」です。この値が低いほどCPUが多く使われていることになります。
mpstatはデフォルトでは「全CPU平均」のデータを表示しますが、オプションを追加すれば各CPUコアの使用状況も確認できます。
mpstat -P ALL
出力例:
05時40分41秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05時40分41秒 all 1.00 0.00 0.50 0.20 0.00 0.10 0.00 0.00 0.00 98.20
05時40分41秒 0 2.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 97.00
05時40分41秒 1 0.00 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.50
...
このように、個別のCPUコアごとの状態を確認することで、特定のコアに偏った負荷がかかっていないかを判断できます。パフォーマンスチューニングや負荷分散の判断材料として重要な情報です。
mpstat
はリアルタイム監視も可能です。たとえば以下のように指定します。
mpstat 2 5
これは「2秒ごとに5回」CPU使用率を表示するという意味になります。定期的なモニタリングに非常に便利です。
結果は以下のように、2秒間隔で5回出力されます。
時間 CPU %usr %sys %iowait ... %idle
10:01:02 all 3.00 0.50 0.10 96.40
10:01:04 all 2.70 0.60 0.20 96.50
...
この形式でログを取りたい場合は、標準出力をファイルにリダイレクトすれば簡単に記録できます。
CPU使用率の傾向をログとして記録しておくと、後から負荷の状況を分析する際に役立ちます。以下のように、ログファイルに出力することが可能です。
mpstat 5 12 > cpu_usage.log
これで、1分間(5秒×12回)のCPU使用率ログがcpu_usage.log
ファイルに保存されます。ログ解析ツールと組み合わせることで、定期的なモニタリングが自動化できます。
また、cronジョブなどと連携すれば、定期的なCPU監視も容易に構築できます。
あるLinuxサーバーで「動作が重い」と報告を受けたとしましょう。topコマンドではCPU使用率が高いものの、詳細がつかめない。このようなケースでmpstatを使えば、CPU負荷の内訳を確認できます。
たとえば、以下のような出力が得られたとします:
%usr: 10.00
%sys: 2.00
%iowait: 60.00
%idle: 28.00
この場合、CPUはそれほど使われていないように見えるものの、I/O待ち(ディスクアクセス待ち)が60%を占めており、システム全体が遅くなっている原因がディスクI/Oにあることがわかります。
このように、「CPUの何にどれだけ使われているか」を把握できる点が、mpstatの大きなメリットです。
mpstatコマンドは、LinuxシステムのCPU使用率を詳細に確認できる強力なツールです。特にマルチコア環境において、各コアの利用状況まで把握できる点が優れており、パフォーマンスの問題を的確に診断するのに役立ちます。
mpstat
mpstat -P ALL
mpstat 間隔 回数
> ファイル名
Linuxのリソース管理を極めるために、ぜひmpstatを活用してみてください。