連載
» 2017年07月14日 05時00分 UPDATE

Linux基本コマンドTips(127):【 mpstat 】コマンド――CPUごとの使用率を表示する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、CPUごとの使用率を表示する「mpstat」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介してきます。今回は、CPUごとの使用率を表示する「mpstat」コマンドです。

mpstatコマンドとは?

 「mpstat」は、CPUごとに使用率や割り込みの統計情報を表示するコマンドです。

 mpstatはsysstatパッケージに収録されています。「sudo yum install sysstat」あるいは「sudo apt-get install sysstat」としてインストールできます※。

※sysstatパッケージをインストールする前にパッケージの内容を確認するコマンドもある。「apt-cache -f search sysstat」と実行する。




mpstatコマンドの書式

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

※[ ]は省略可能な引数を示しています





mpstatの主なオプション

短いオプション 意味
-A 全てのCPUについて、使用率および割り込みの統計情報を表示する(「-u -I ALL -P ALL」相当)
-I 指定 割り込みの統計情報を表示。「SUM(総計)」「CPU(ハードウェア割り込み)」「SCPU(ソフトウェア割り込み ※)」「ALL(SUM、CPU、SCPUの全て)」のいずれかを指定する
-P 指定 0から始まる番号を用いて表示するCPUを指定する(「,」区切り)、または「ON(オンラインプロセッサー)」「ALL(全CPU)」と指定
-u CPUの使用率を表示する(「-I」と一緒に表示したい場合に使用)

※カーネル2.6.31以降のみ




CPUの使用率を表示する

 「mpstat」で全CPUの平均使用率(CPU番号:all)を表示します(画面1)。複数のCPUのうちの一部を指定したい場合は「-P」オプションを使います。例えば、全てのCPUを個別に表示したい場合は「mpstat -P ALL」のように入力します。

コマンド実行例

mpstat画面1

(全CPUの平均使用率を表示する)

mpstat -P ALL

(平均使用率とCPUごとの使用率を表示する)


画面1 画面1 CPUの使用率を表示したところ

 画面1の表示項目の意味は次の通りです。

項目名 CPU使用率の内訳
%usr アプリケーション(ユーザーレベル)
%nice アプリケーション(ナイス値による優先指定)
%sys カーネル(システムレベル)
%iowait アイドル状態(ディスクI/Oリクエスト待ち)
%irq ハードウェア割り込み処理
%soft ソフトウェア割り込み処理
%steal 他の仮想CPU向けのハイパーバイザ処理
%quest 仮想CPUの処理
%gnice 仮想CPUの処理(ナイス値による優先指定)
%idle アイドル状態(ディスクI/Oリクエスト待ち以外)

 mpstatは80桁より広い幅で出力します。実行画面では端末画面を110桁で出力しています。

 80桁で固定された画面の場合、「lessコマンド」と組み合わせて「mpstat | less -S」のように使うと、折り返さずに横スクロールで見ることができます(画面2)。あるいは出力内容のうち、行末の部分が不要であれば「cut -b -76」のようにカットする方法もあります(画面3)。

コマンド実行例

mpstat -P ALL | less -S画面2

mpstat -P ALL | cut -b 76画面3


画面2上
画面2下 画面2 lessコマンドを使ってmpstatの出力を横スクロール表示したところ 下の画面では、mpstatの表示のうち右端部分を見ている
画面3 画面3 mpstatの出力をcutコマンドで切り取ったところ 1行目は日付の前にタブが入っているため、76桁以上表示しているように見えることがある


CPUの割り込み情報を表示する

 割り込み情報を表示したい場合は「-I」オプションで指定します。「-I SUM」で総計、「-I CPU」でハードウェア割り込み、「-I SCPU」でソフトウェア割り込みを表示します。全て表示したい場合は「-I ALL」とします。

 CPUごとに表示したい場合は「-P ALL」、メモリの使用量も一緒に表示したい場合は「-u」も併用します。「-A」で「-u -I ALL -P ALL」相当になります(画面4)。

コマンド実行例

mpstat -I ALL -P ALL

(CPUごとに全ての割り込み情報を表示)

mpstat -A画面4

(CPUごとに使用率および割り込みの統計情報を表示(-u -I ALL -P ALL相当))


画面4 画面4 割り込み情報を表示したところ ※※

※※ 「-I CPU」相当の部分では、1秒当たりの各種ハードウェア割り込みの数を表示している。表示される割り込みの種類(/proc/interrupts)は以下の通り。NMI:Non-maskable interrupts、LOC:Local timer interrupts、SPU:Spurious interrupts、PMI:Performance monitoring interrupts、IWI:IRQ work interrupts、RTR:APIC ICR read retries、RES:Rescheduling interrupts、CAL:Function call interrupts、TLB:TLB shootdowns、TRM:Thtermal event interrupts、THR:Threshhold APIC interrupts、DFR:Deferred Error APIC interrupts、MCE:Machine check exceptions、MCP:Machine check polls、PIN:Posted-interrupt notification event




CPUの情報をリアルタイムで表示する

 「mpstat 秒数」または「mpstat 秒数 回数」のように更新の間隔を指定すると、リアルタイムで統計情報を表示します。回数を指定しなかった場合は[CTRL]+[C]で終了します。

 回数指定または[CTRL]+[C]で終了すると、最後に平均値(Average)を出力します。

コマンド実行例

mpstat 1

(CPUの使用率を1秒間隔で表示)

mpstat -A 1 10

(全ての情報を1秒間隔で10回表示)


画面5 画面5 1秒間隔でmpstatを実行したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。