Categories: linux

mpstatコマンドの使い方を完全解説!LinuxでCPU使用率を詳細に確認する方法

Linuxサーバーのパフォーマンス監視を行う上で、CPUの使用率は非常に重要な指標の一つです。特にシステムのレスポンスが遅くなったり、予期しない負荷がかかったときには、CPUがどのように利用されているかを素早く確認する必要があります。
そんなときに活躍するのが「mpstat」コマンドです。mpstatはCPU全体および各コアの使用状況を詳細に表示してくれる便利なツールであり、多くのLinuxディストリビューションで利用可能です。

この記事では、「mpstat」コマンドの基本的な使い方から、表示内容の読み解き方、実践的な使用例までをわかりやすく解説していきます。システム管理者の方はもちろん、Linuxを学び始めたばかりの方にも役立つ内容となっていますので、ぜひ最後までご覧ください。


mpstatとは?CPU使用率を監視するためのツール

mpstatは、sysstatパッケージに含まれているCPU使用率を表示するコマンドです。マルチプロセッサ(複数CPUコア)環境において、各CPUの使用状況を詳細に把握できるのが特徴です。

基本的なコマンド構文は以下の通りです。

mpstat [オプション] [間隔] [回数]

たとえば、

mpstat 5 3

と入力すれば、5秒ごとに3回、CPUの使用状況を表示します。これはリアルタイム監視に便利な使い方です。

mpstatは、コマンドを1回実行するだけで、全CPU平均や各CPUの情報を表示できるため、他のtopコマンドやvmstatよりも詳細でCPUに特化した情報を確認できます。


mpstatコマンドのインストール方法

ほとんどのLinuxディストリビューションでは、mpstatはデフォルトでインストールされていないことがあります。その場合は、sysstatパッケージをインストールすることで利用可能になります。

CentOS / RHEL系の場合:

sudo yum install sysstat

Ubuntu / Debian系の場合:

sudo apt-get install sysstat

インストール後、mpstatコマンドを実行できるようになります。インストールが完了したら、以下のコマンドでバージョンを確認しておきましょう。

mpstat -V

mpstatの基本的な使い方と出力の見方

以下は、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

各項目の意味は以下の通りです。

  • %usr:ユーザープロセスのCPU使用率
  • %nice:優先度変更されたプロセスのCPU使用率
  • %sys:カーネル(システム)による使用率
  • %iowait:I/O待機時間の割合
  • %irq:ハードウェア割り込みの処理時間
  • %soft:ソフトウェア割り込みの処理時間
  • %steal:仮想化環境で他の仮想マシンに奪われたCPU時間
  • %guest:仮想CPUの処理時間
  • %gnice:ゲスト内niceプロセスによるCPU使用率
  • %idle:アイドル状態(CPUが何もしていない)

ここで注目すべきは「%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
...

この形式でログを取りたい場合は、標準出力をファイルにリダイレクトすれば簡単に記録できます。


mpstatをログとして保存する方法

CPU使用率の傾向をログとして記録しておくと、後から負荷の状況を分析する際に役立ちます。以下のように、ログファイルに出力することが可能です。

mpstat 5 12 > cpu_usage.log

これで、1分間(5秒×12回)のCPU使用率ログがcpu_usage.logファイルに保存されます。ログ解析ツールと組み合わせることで、定期的なモニタリングが自動化できます。

また、cronジョブなどと連携すれば、定期的なCPU監視も容易に構築できます。


mpstatの活用例:高負荷の原因を調査する

ある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を使ってCPUの状態を正しく把握しよう

mpstatコマンドは、LinuxシステムのCPU使用率を詳細に確認できる強力なツールです。特にマルチコア環境において、各コアの利用状況まで把握できる点が優れており、パフォーマンスの問題を的確に診断するのに役立ちます。

  • 全体の使用率を見たいときはmpstat
  • 各CPUの使用率を確認したいときはmpstat -P ALL
  • 一定間隔でリアルタイムに監視したいときはmpstat 間隔 回数
  • ログとして保存したいときは> ファイル名

Linuxのリソース管理を極めるために、ぜひmpstatを活用してみてください。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。