【Linux】mpstatとは?CPU使用率・コアごとの負荷を確認する方法を解説

Linux

どーも!marusukeです!

この記事では

  • mpstatでできること
  • mpstatの使用例
  • mpstatのオプション

をわかりやすく解説します!

mpstatコマンドでできること

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

mpstat は、CPU使用率をコア(CPUごと)単位で確認できるコマンドです。全体だけでなく各コアの負荷バランスを把握できます。

tophtop と違い、定期的に統計情報を出力できるのが特徴です。

CPUコアとは?
CPU内部にある処理ユニットのこと。複数コアがあると同時に複数の処理を実行できます。

mpstatコマンドの使用例

この例では、1秒ごとに3回、すべてのCPUコアの使用率を表示します。%idle が低いほどCPUが忙しい状態です。

$ mpstat -P ALL 1 3
Linux 5.15.0 (hostname)   04/19/2026  _x86_64_  (4 CPU)

12:00:01 AM  CPU   %usr   %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
12:00:02 AM  all    5.00   0.00  2.00  1.00    0.00  0.50  0.00   0.00   0.00  91.50
12:00:02 AM    0    6.00   0.00  2.00  1.00    0.00  0.50  0.00   0.00   0.00  90.50
12:00:02 AM    1    4.00   0.00  2.00  1.00    0.00  0.50  0.00   0.00   0.00  92.50
12:00:02 AM    2    5.00   0.00  2.00  1.00    0.00  0.50  0.00   0.00   0.00  91.50
12:00:02 AM    3    5.00   0.00  2.00  1.00    0.00  0.50  0.00   0.00   0.00  91.50

mpstatの出力には複数のCPU使用率が表示されます。それぞれの意味は以下の通りです。

CPU使用率の各項目の意味

項目 説明
%usr ユーザープログラムがCPUを使用している割合(通常のアプリ処理)
%nice nice値を変更したプロセス(優先度変更された処理)のCPU使用率
%sys カーネル(OS)がCPUを使用している割合(システムコールや内部処理)
%iowait ディスクやネットワークのI/O待ちでCPUが待機している時間
%irq ハードウェア割り込み処理に使われたCPU時間
%soft ソフトウェア割り込み処理に使われたCPU時間
%steal 仮想環境で他の仮想マシンにCPUを奪われた時間
%guest 仮想マシン(ゲストOS)の実行に使われたCPU時間
%gnice nice値を変更したゲストOSのCPU使用率
%idle CPUが何もしていない待機時間(余裕がある状態)

iowaitとは?
ディスクやネットワークの応答待ちでCPUが待機している時間のこと。高い場合はI/Oがボトルネックの可能性があります。

mpstatコマンドのオプション

オプション説明
-P ALLすべてのCPUコアを表示
-P <番号>指定したCPUのみ表示
-uCPU使用率を表示(デフォルト)
-I割り込み統計を表示
-o JSONJSON形式で出力
-Tスレッド情報を表示
-Vバージョン情報を表示

よくある使い方

# 全CPUの使用率をリアルタイム監視
mpstat 1

# コアごとの使用率を確認
mpstat -P ALL 1

# 割り込みの確認
mpstat -I ALL 1

mpstatsysstat パッケージに含まれているため、未インストールの場合は以下で導入できます。

# Ubuntu / Debian
sudo apt install sysstat

# RHEL / CentOS
sudo yum install sysstat

以上です!
ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました