CPUをコアごとに確認する

  • 39
    Like
  • 1
    Comment
More than 1 year has passed since last update.

SYSSTATパッケージに含まれる mpstat コマンドを使ってCPUのコアごとに確認する.

SYSSTATをインストール

$ sudo yum install sysstat
...
=======================================================
 Package    Arch      Version        Repository  Size
=======================================================
Installing:
 sysstat    x86_64    9.0.4-22.el6      base      230 k
...
Installed:
 sysstat.x86_64 0:9.0.4-22.el6

Complete!

$ mpstat -V
sysstat バージョン 9.0.4
(C) Sebastien Godard (sysstat  orange.fr)

使い方

-P ALLですべてのコアの情報が表示される.

$ mpstat -P ALL
Linux 2.xx.xx-xxx.xx.x.el6.x86_64 (xxxx.sakura.ne.jp)   2014年01月04日   _x86_64_    (2 CPU)

20時18分16秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
20時18分16秒  all    0.06    0.00    0.03    0.00    0.00    0.00    0.13    0.00   99.78
20時18分16秒    0    0.07    0.00    0.02    0.00    0.00    0.00    0.24    0.00   99.67
20時18分16秒    1    0.04    0.00    0.05    0.00    0.00    0.00    0.02    0.00   99.89

最後に秒数を追加するとその間隔ごとに表示される.
Control + C で終了.

$ mpstat -P ALL 3
Linux 2.xx.xx-xxx.xx.x.el6.x86_64 (xxxx.sakura.ne.jp)   2014年01月04日   _x86_64_    (2 CPU)

20時23分24秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
20時23分27秒  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20時23分27秒    0    0.33    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.67
20時23分27秒    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

20時23分27秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
20時23分30秒  all    0.00    0.00    0.17    0.00    0.00    0.00    0.17    0.00   99.67
20時23分30秒    0    0.00    0.00    0.33    0.00    0.00    0.00    0.33    0.00   99.34
20時23分30秒    1    0.00    0.00    0.33    0.00    0.00    0.00    0.33    0.00   99.34

...

ありそうな状況としてはすべてのコアが使われてるかを確認するときだと思います.

$ mpstat -P ALL 3
...
21時29分25秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
21時29分28秒  all   15.43    0.00    5.13    0.00    0.00    0.46    0.00    0.00   78.98
21時29分28秒    0   21.00    0.00    6.67    0.00    0.00    0.00    0.00    0.00   72.33
21時29分28秒    1   13.99    0.00    5.24    0.00    0.35    3.85    0.00    0.00   76.57
21時29分28秒    2    9.03    0.00    3.01    0.00    0.00    0.00    0.00    0.00   87.96
21時29分28秒    3   14.09    0.00    3.02    0.00    0.00    0.00    0.00    0.00   82.89
...

見方

雰囲気訳した感じなので詳しくは公式のドキュメントを参照してください.

  • CPU

    • プロセッサ番号.
    • allのキーワードはすべてのプロセッサの平均値.
  • %usr

    • ユーザレベル(アプリケーション)のCPU使用率.
  • %nice

    • nice優先順位に従ってユーザレベルで実行された処理のCPU使用率(らしい).
    • 基本0%になってるけどniceコマンドとか使う状況になったら変わるかも.
  • %sys

    • システムレベル(カーネル)のCPU使用率.
    • ハードウェア処理時間とソフトウェア割込み時間を含んでいない.
  • %iowait

    • ディスクI/Oによる待ち時間の割合.
    • 負荷にもよるけどDBサーバだと割りと10%くらいいってる.
  • %irq

    • ハードウェア割込みに費やしたCPUの処理時間の割合.
    • これも基本0%だけどこれが増える状況ってどんなときだろ.
    • ※ Interrupt ReQuest の略っぽい.
  • %soft

    • ソフトウェア割込みに費やしたCPUの処理時間の割合.
  • %steal

    • ハイパーバイザによって他の仮想プロセッサに処理を割り当てられたために起こる待ち時間の割合(多分).
  • %guest

    • 仮想プロセッサを実行するためにCPUが費やした時間の割合.
    • %steelは数%になってるけどこちらは0%しか見たことない.
  • %gnice

    • niceゲストを実行するためにCPUが費やした時間の割合.
    • 手元のサーバでは表示されない.
  • %idle

    • アイドル状態の割合.
    • ディスクI/Oによる待ち時間は含まれない(たぶん)