どーも!marusukeです!
この記事では
- mpstatでできること
- mpstatの使用例
- mpstatのオプション
をわかりやすく解説します!
mpstatコマンドでできること
mpstat [オプション] [間隔] [回数]
mpstat は、CPU使用率をコア(CPUごと)単位で確認できるコマンドです。全体だけでなく各コアの負荷バランスを把握できます。
top や htop と違い、定期的に統計情報を出力できるのが特徴です。
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のみ表示 |
| -u | CPU使用率を表示(デフォルト) |
| -I | 割り込み統計を表示 |
| -o JSON | JSON形式で出力 |
| -T | スレッド情報を表示 |
| -V | バージョン情報を表示 |
よくある使い方
# 全CPUの使用率をリアルタイム監視
mpstat 1
# コアごとの使用率を確認
mpstat -P ALL 1
# 割り込みの確認
mpstat -I ALL 1
mpstat も sysstat パッケージに含まれているため、未インストールの場合は以下で導入できます。
# Ubuntu / Debian
sudo apt install sysstat
# RHEL / CentOS
sudo yum install sysstat
以上です!
ここまで読んでいただきありがとうございました!

コメント