Linux mpstat コマンド

Linux 命令大全Linux コマンド大全


一、mpstat コマンド概要

mpstat(Multi-Processor Statistics)は、Linuxシステムにおけるパフォーマンス監視ツールであり、sysstatツールキットの一部です。主にCPUの使用状況を監視し、各CPUコアの詳細な統計情報を表示できます。

1.1 主な機能

  • CPU使用率の詳細な統計を表示
  • 単一のCPUコアまたはすべてのコアのパフォーマンスを監視
  • ユーザーモード、カーネルモード、アイドルなどの状態のCPU時間の割合を提供
  • 間隔サンプリングと複数回サンプリング機能をサポート

1.2 適用シナリオ

  • システムパフォーマンスのチューニング
  • CPUボトルネックの分析
  • マルチコアCPUの負荷分散の確認
  • システム監視と障害調査

二、インストールと基本使用

2.1 インストール方法

ほとんどのLinuxディストリビューションでは、パッケージマネージャーを使用してインストールできます:

# Ubuntu/Debian
sudo apt install sysstat

# CentOS/RHEL
sudo yum install sysstat

# Arch Linux
sudo pacman -S sysstat

2.2 基本的なコマンド形式

mpstat [选项] [间隔时间] [采样次数]

簡単な例

例

# すべてのCPUコアの現在の統計情報を表示
mpstat

# 2秒ごとに1回サンプリングし、合計5回サンプリング
mpstat 2 5

三、コマンドオプションの詳細

オプション 説明
-P {ALL|CPU番号} 表示するCPUコアを指定(ALLはすべてのコアを意味)
-u CPU使用率を表示(デフォルトオプション)
-I {SUM|CPU|SCPU|ALL} 割り込み統計情報を表示
-V バージョン情報を表示
-o JSON JSON形式で結果を出力

3.1 よく使うオプションの組み合わせ

例

# すべてのCPUコアを監視し、1秒ごとに1回更新
mpstat -P ALL 1

# 最初のCPUコア(CPU0)のみを監視
mpstat -P 0 1 5

四、出力結果の解析

実行mpstat -P ALL 1の典型的な出力:

Linux 5.4.0-91-generic (hostname)  03/15/2023  _x86_64_ (4 CPU)

10:30:45 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:30:46 AM  all    5.25    0.00    1.25    0.25    0.00    0.25    0.00    0.00    0.00   93.00
10:30:46 AM    0    6.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   93.00
10:30:46 AM    1    4.00    0.00    1.00    1.00    0.00    1.00    0.00    0.00    0.00   93.00
10:30:46 AM    2    6.00    0.00    2.00    0.00    0.00    0.00    0.00    0.00    0.00   92.00
10:30:46 AM    3    5.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   94.00

4.1 各フィールドの意味

フィールド 説明
%usr ユーザーモードプログラムの実行時間の割合
%nice 低優先度のユーザーモードプログラムの実行時間の割合
%sys カーネルモードプログラムの実行時間の割合
%iowait CPUがI/O操作を待機する時間の割合
%irq ハードウェア割り込みの処理時間の割合
%soft ソフトウェア割り込みの処理時間の割合
%steal 仮想CPUが実CPUを待機する時間の割合
%guest 仮想プロセッサの実行時間の割合
%gnice 低優先度ゲストの実行時間の割合
%idle CPUのアイドル時間の割合

五、実際の応用例

5.1 CPU使用率の監視

例

# すべてのCPUコアを監視し、2秒ごとに更新、合計5回表示
mpstat -P ALL 2 5

5.2 CPUボトルネックの特定

重点的に注目すべき点:

  • %usrが高すぎる:ユーザーモードプログラムが大量のCPUを消費
  • %sysが高すぎる:システムコールが頻繁
  • %iowaitが高すぎる:I/Oボトルネックの可能性

5.3 パフォーマンスレポートの生成

例

# 出力をファイルにリダイレクト
mpstat -P ALL 1 60 > cpu_stats.log

六、よくある質問と回答

6.1 mpstatとtopコマンドの違いは何ですか?

  • top:システム全体の状態をリアルタイムに動的に表示
  • mpstat:CPU統計に特化し、各コアのより詳細なデータを提供

6.2 %idleが非常に低い場合は何を意味しますか?

CPUが非常にビジーであることを示し、他の指標と組み合わせて判断する必要があります:

  • %usrが高い場合:アプリケーションが大量のCPUを消費
  • %sysが高い場合:システムコールが多すぎる
  • %iowaitが高い場合:I/Oがボトルネックになっている

6.3 特定のCPUコアを監視するにはどうすればよいですか?

例

# CPUコア2のみを監視
mpstat -P 2 1

七、まとめ

mpstatはLinuxシステムのパフォーマンス監視における重要なツールであり、マルチコアCPUの使用状況の分析に特に適しています。この記事の学習を通じて、以下のことができるようになるはずです:

  1. mpstatの基本原理と使用シナリオを理解する
  2. mpstatのよく使うコマンドオプションを習得する
  3. mpstatの出力結果を正しく解釈する
  4. 実際の作業でmpstatを使用してパフォーマンス分析を行う

他のツール(例:vmstat、iostatなど)と組み合わせて使用することで、システムのパフォーマンス問題をより包括的に分析できます。

Linux 命令大全Linux コマンド大全

その他の拡張