Linux mpstat コマンド
一、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
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
# 最初の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
mpstat -P ALL 2 5
5.2 CPUボトルネックの特定
重点的に注目すべき点:
- %usrが高すぎる:ユーザーモードプログラムが大量のCPUを消費
- %sysが高すぎる:システムコールが頻繁
- %iowaitが高すぎる:I/Oボトルネックの可能性
5.3 パフォーマンスレポートの生成
例
# 出力をファイルにリダイレクト
mpstat -P ALL 1 60 > cpu_stats.log
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 -P 2 1
七、まとめ
mpstatはLinuxシステムのパフォーマンス監視における重要なツールであり、マルチコアCPUの使用状況の分析に特に適しています。この記事の学習を通じて、以下のことができるようになるはずです:
- mpstatの基本原理と使用シナリオを理解する
- mpstatのよく使うコマンドオプションを習得する
- mpstatの出力結果を正しく解釈する
- 実際の作業でmpstatを使用してパフォーマンス分析を行う
他のツール(例:vmstat、iostatなど)と組み合わせて使用することで、システムのパフォーマンス問題をより包括的に分析できます。
Linux コマンド大全