CPUコア毎のCPU使用率を確認する[mpstat]

CPUのコアごとにCPU使用率を確認する

CPUのコア毎のCPU使用率を確認するには、「top」コマンドで「1」を入力すれば表示できます

参考記事:topコマンドでコア単位でCPU使用率を確認する

今回はTOPコマンドではなくて、「mpstat」を紹介します。
mpstatは、CPUごとに使用率や割り込みを表示するコマンドです。オプションでCPUのコアごとに表示したり、リアルタイムでの表示、一定の間隔で表示する回数を指定したりできます

mpstatをインストールする

mpstatはsysstatパッケージに収録されています。
インストールされていない場合は「sysstat」をインストールすれば「mpstat」がインストールされます

# CentOS 6 , CentOS 7
$ sudo yum install sysstat

# CentOS 8
$ sudo dnf install sysstat

# ubunto
sudo apt-get install sysstat」としてインストールでき

mpstatの使い方

mpstatでは、オプションを使用しない場合は、全CPUの平均使用率が表示されます。

$ mpstat
Linux 3.10.0-1062.9.1.el7.x86_64 (www01)        07/15/2021      _x86_64_        (4 CPU)

10:30:15 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:30:15 AM  all    8.39    0.02    1.83    1.07    0.00    0.05    0.32    0.00    0.00   88.32

表示されている項目の意味は下記となります

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

CPUのコア毎にCPU使用率を表示する

CPUのコアごとに表示したい場合は「mpstat -P ALL」とすれば、CPUのコア毎に表示されます

$ mpstat -P ALL
Linux 3.10.0-1062.9.1.el7.x86_64 (www01)        07/15/2021      _x86_64_        (4 CPU)

10:39:54 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:39:54 AM  all    8.40    0.02    1.83    1.07    0.00    0.05    0.32    0.00    0.00   88.32
10:39:54 AM    0    7.88    0.02    1.73    0.99    0.00    0.09    0.25    0.00    0.00   89.04
10:39:54 AM    1    7.53    0.02    1.72    1.06    0.00    0.01    0.44    0.00    0.00   89.21
10:39:54 AM    2    9.38    0.02    2.00    1.05    0.00    0.05    0.28    0.00    0.00   87.22
10:39:54 AM    3    8.80    0.02    1.85    1.17    0.00    0.06    0.30    0.00    0.00   87.79

リアルタイムでCPU使用率を表示する

リアルタイムで、表示するには「mpstat -P ALL 1」と、最後に「1」と入力すれば1秒間隔で表示されます。数字を変更すれば指定した間隔で表示されます。
mpstatコマンドの表示を止めには、「Ctrl」+「C」で止めれます

$ mpstat -P ALL 1
Linux 4.18.0-305.3.1.el8.x86_64 (vultr_www01)   07/15/21        _x86_64_        (1 CPU)

10:44:42     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:44:43     all    0.00    0.00    0.00    0.00    0.00    1.01    0.00    0.00    0.00   98.99
10:44:43       0    0.00    0.00    0.00    0.00    0.00    1.01    0.00    0.00    0.00   98.99

10:44:43     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:44:44     all    0.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   99.00
10:44:44       0    0.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   99.00

指定した回数分のCPUのコア毎の使用率を表示する

リアルタイムでずっと表示するより、指定した回数分だけ表示したい場合は、「mpstat -P ALL 1 10」とすれば、1秒間隔で10回表示されます。この場合は10回表示されれば自動で止まるので「Ctrl」+「C」で止める必要がありません。

書式:mpstat -P ALL [ 表示する間隔(秒)] [表示する回数]

$ mpstat -P ALL 1 3
Linux 4.18.0-305.3.1.el8.x86_64 (vultr_www01)   07/15/21        _x86_64_        (1 CPU)

10:50:29     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:50:30     all    0.00    0.00    0.00    0.00    0.00    1.00    0.00    0.00    0.00   99.00
10:50:30       0    0.00    0.00    0.00    0.00    0.00    1.00    0.00    0.00    0.00   99.00

10:50:30     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:50:31     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:50:31       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

10:50:31     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:50:32     all    0.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   99.00
10:50:32       0    0.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   99.00

Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all    0.00    0.00    0.33    0.00    0.00    0.33    0.00    0.00    0.00   99.33
Average:       0    0.00    0.00    0.33    0.00    0.00    0.33    0.00    0.00    0.00   99.33