Go to main content

マニュアルページ セクション 8: システム管理コマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

pgstat(8)

名前

pgstat - プロセッサグループの使用状況統計の報告

形式

pgstat [-A] [-B core|soc|sys] [-C] [-l] [-p] [-s key | -S key]
    [-t number] [-T u | d] [-v] [-r string] [-R string]
     [-P pg ...] [-c processor_id... ] [interval [count]]
pgstat -h

説明

pgstat はプロセッサグループ (PG) に関する使用状況統計を表示します。PG とは、共通の特性でひとまとめにした CPU のセットです。

PG は、オペレーティングシステムで、実行パイプラインやキャッシュなど、パフォーマンスに関連したハードウェアを共有する CPU を表すために使用されます。これらの PG は、マシンのプロセッサトポロジをモデル化した階層に編成されます。この階層では、それぞれの CPU (ストランド) が、その CPU ともっとも多くのハードウェアを共有している CPU 群を表すリーフ PG を 1 つ持ちます。ルート PG に到達するまでリーフ PG を上位にさかのぼっていくにつれ、その CPU と共有されるハードウェアの数は少なくなっていきます。ルート PG は、システム内のすべての CPU を含み、相互に共有するハードウェアがもっとも少ない CPU のグループを表します (PG 階層の例については、後述の「使用例」を参照してください)。

マシンに、パフォーマンス関連のハードウェアの共有関係がない場合、pgstat は、システム内のすべての CPU を含むルート PG のみを表示します。

デフォルトで、pgstat は次の操作を行います。

  • 1 秒間の間隔にわたって、PG 階層内の全 PG のハードウェア使用状況およびソフトウェア使用状況を測定します。

  • PG の使用状況を深さ優先順で表示し、PG がどのように相互に関連しているかをインデントを使用してわかりやすく示します。

  • 一定間隔の時間が経過するごとに、それぞれの PG について、ID、共有関係、ハードウェア負荷、ソフトウェア負荷、およびオンラインの CPU を表示します。

間隔および回数を引数として与えることにより、サンプリング間隔の秒数と、指定した PG の使用状況を測定および表示する回数を指定できます。

オプションを指定することで、出力をさらに調整し、特定の方法で出力を整理し、関心のある PG を指定できます (詳細は、後述の「オプション」を参照)。

指定した PG の使用状況がサポートされていない場合にはハイフン (「-」) が表示され、使用状況を利用できない場合には疑問符 (?) が表示されます。ハードウェア使用状況の測定に CPU ハードウェアパフォーマンスカウンタが必要なシステムでは、attributes(7)cputrack(1)dtrace(8) のほか、libcpc(3LIB) を使用するほかのアプリケーションなど、cpc(3CPC) コンシューマによってカウンタが使用されているためにハードウェア使用状況を利用できない場合があります。

オプション

サポートしているオプションは、次のとおりです。

–A

複数の間隔にわたって pgstat を実行している場合に、使用状況データのサマリーを表示します。

–B core

コア ID 別に使用率データをビン化して表示します。このオプションは –P オプションと互換性がありません。

–B soc

ソケット ID 別に使用率データをビン化して表示します。このオプションは –P オプションと互換性がありません。

–B sys

システム全体の使用率をビン化して表示します。このオプションは –P オプションと互換性がありません。

–c processor_id...

指定した CPU を含む PG に関する使用状況を表示します。CPU は、CPU ID のコンマ区切りのリストとして指定できます。ハイフン (「-」) を使用すると、連続した範囲の CPU ID を指定できます (たとえば 0-3)。

–C

各 PG 内の CPU ごとの使用状況を表示します。

–h

簡単なヘルプメッセージを表示し、終了ステータス 0 で終了します。

–l

ハードウェア利用率計算に、学習された容量を使用します (学習された容量が、プラットフォームの通知される容量よりも大きい場合)。学習された容量は、pgstat の起動以降に監視された最大のハードウェア利用率で、プラットフォームが正確な最大容量を提供しない場合に役立ちます。

–p

PG に対応する物理的関係を表示します。PG に、システム全体、プロセッサコア、またはソケットと同じ CPU がある場合、それぞれ systemcore、または socket がその ID とともに、PG の共有関係のあとに角括弧 (「[]」) で囲まれて表示されます。

–P pg,...

指定した PG の使用状況を表示します。複数の PG は、PG ID のコンマ区切りのリストとして指定できます。ハイフン(「-」) を使用すると、連続した範囲の PG ID を指定できます (たとえば 0-3)。

–r string1,string2,...

指定された文字列のいずれかに一致した共有関係名を持つ PG に関する使用状況のみを表示します。文字列は、完全な関係名でも、1 つ以上の関係名の一部でも構いません。文字列の照合では大文字と小文字は区別されません。

複数の –r オプションを入力できますが、この場合、指定された文字列のいずれかが含まれる関係名を持つすべての PG に一致することになります。

–R string1,string2,...

指定された名前以外の共有関係名を持つ PG に関する情報のみを表示します。

文字列の照合は、前述の –r オプションの説明と同じです。複数の –R オプションを入力できます。

–s key

指定されたキーで、出力行を降順にソートします。指定されたキーは、次のいずれかになります。

pg

PG ID の順にソートします。

hwload

ハードウェア使用状況の順にソートします。

swload

ソフトウェア使用状況の順にソートします。

user

ユーザー時間の順にソートします。

sys

システム時間の順にソートします。

idle

アイドル時間の順にソートします。

depth

PG ツリーをルートからリーフに下っていく順番で、深さ優先でソートします (デフォルト)。

breadth

PG ツリーをルートからリーフに下っていく順番で、幅優先でソートします。

–S key

指定されたキーで、出力行を昇順にソートします。使用可能なキー値は、–s オプションの場合と同じです。

–t number

指定された整数値に対応する PG の最上位番号を表示します。

–T u | d

サンプリング間隔ごとのタイムスタンプを、UNIX 時間 (time(2) を参照) で表示するか、date(1) で使用される標準の日付形式で表示します。

–v

ハードウェアの使用状況および容量、ソフトウェアのユーザー時間、システム時間、アイドル時間など、各 PG に関する追加情報を表示します。

出力の見出し

pgstat コマンドは、以下に示す列見出しをその意味とともに表示します。

PG

プロセッサグループ ID。

RELATIONSHIP

PG の共有関係。

HW

パーセント単位でのハードウェア負荷 (間隔あたりの UTIL/CAP として計算)。

UTIL

PG の共有ハードウェアコンポーネントの、1 秒あたりの正規化されたハードウェア使用状況。これは大きな数値になる可能性があるので、KMB、および T が、それぞれ 1000、100 万、10 億、1 兆を示すために使用されます。

CAP

PG の共有ハードウェアコンポーネントの、1 秒あたりのおおよその最大使用状況見込み。この値は、特定のプラットフォームではデフォルトで最適な推測に固定されていますが、–l オプションを使用すると学習された値に変更できます。これは大きな数値になる可能性があるので、KMB、および T が、それぞれ 1000、100 万、10 億、1 兆を示すために使用されます。

SW

パーセント単位でのソフトウェア負荷 ((USR + SYS) / (USR + SYS + IDLE) で計算)。

USR

PG 内の CPU でソフトウェアスレッドがユーザーモードで実行していた時間の、時間間隔に対するパーセント。

SYS

PG 内の CPU でソフトウェアスレッドがシステムモードで実行していた時間の、時間間隔に対するパーセント。

IDLE

PG 内の CPU でソフトウェアスレッドが実行していなかった時間の、時間間隔に対するパーセント。

CPUS

PG 内の CPU の CPU ID。

次の例では、システムには、8 つのコアと 32 のストランドを備えた 1 つの UltraSPARC T1 プロセッサチップが搭載されています。

使用例 1 指定した期間での使用状況を表示する

次のコマンドは、直前の 2 秒間にわたるすべての PG の使用状況を表示します。

$ pgstat 1 2
PG  RELATIONSHIP            HW    SW  CPUS
 0  System                   -  0.4%  0-31
 3   Data_Pipe_to_memory     -  0.4%  0-31
 2    Floating_Point_Unit   0%  0.4%  0-31
 1     Integer_Pipeline     0%    0%  0-3
 4     Integer_Pipeline     0%    0%  4-7
 5     Integer_Pipeline     0%    0%  8-11
 6     Integer_Pipeline     0%  0.2%  12-15
 7     Integer_Pipeline     0%    0%  16-19
 8     Integer_Pipeline   2.8%  2.7%  20-23
 9     Integer_Pipeline   0.1%  0.2%  24-27
10     Integer_Pipeline     0%    0%  28-31
PG  RELATIONSHIP            HW    SW  CPUS
 0  System                   -  0.4%  0-31
 3   Data_Pipe_to_memory     -  0.4%  0-31
 2    Floating_Point_Unit   0%  0.4%  0-31
 1     Integer_Pipeline     0%  0.2%  0-3
 4     Integer_Pipeline     0%    0%  4-7
 5     Integer_Pipeline     0%    0%  8-11
 6     Integer_Pipeline     0%    0%  12-15
 7     Integer_Pipeline     0%    0%  16-19
 8     Integer_Pipeline   3.1%  2.5%  20-23
 9     Integer_Pipeline     0%    0%  24-27
10     Integer_Pipeline     0%  0.2%  28-31
使用例 2 整数パイプラインに関する情報を表示する

次のコマンドは、直前の 2 秒間にわたりもっとも頻繁に使用された 2 つの整数パイプラインに関する詳細を表示します。

$ pgstat -v -t 2 -r 'Integer_Pipeline' 1 2
PG  RELATIONSHIP         HW UTIL  CAP     SW    USR    SYS   IDLE CPUS
 1  Integer_Pipeline   0.2% 2.2M 1.4B   0.2%   0.0%   0.2%  99.8% 0-3
 4  Integer_Pipeline  13.1% 181M 1.4B  14.9%   0.0%  14.9%  85.1% 4-7
PG  RELATIONSHIP         HW UTIL  CAP     SW    USR    SYS   IDLE CPUS
 1  Integer_Pipeline   0.2% 1.9M 1.4B   0.2%   0.0%   0.2%  99.8% 0-3
 4  Integer_Pipeline  13.1% 163M 1.4B  14.9%   0.0%  14.9%  85.1% 4-7
使用例 3 指定した期間でのコアの使用状況を表示する

次のコマンドは、直前の 2 秒間にわたるコアの使用状況に関する情報を表示します。

$ pgstat -A 60 2
PG  RELATIONSHIP              HW      SW  CPUS
 0  System                     -   56.9%  0-31
 3   Data_Pipe_to_memory       -   56.9%  0-31
 2    Floating_Point_Unit   0.0%   56.9%  0-31
 1     Integer_Pipeline    36.7%   58.7%  0-3
 4     Integer_Pipeline    41.9%   58.3%  4-7
 5     Integer_Pipeline    31.0%   58.0%  8-11
 6     Integer_Pipeline    30.7%   57.9%  12-15
 7     Integer_Pipeline    30.1%   55.8%  16-19
 8     Integer_Pipeline    40.2%   54.8%  20-23
 9     Integer_Pipeline    35.0%   56.0%  24-27
10     Integer_Pipeline    40.3%   55.8%  28-31
PG  RELATIONSHIP              HW      SW  CPUS
 0  System                     -   10.7%  0-31
 3   Data_Pipe_to_memory       -   10.7%  0-31
 2    Floating_Point_Unit   0.0%   10.7%  0-31
 1     Integer_Pipeline     9.0%   10.7%  0-3
 4     Integer_Pipeline     9.6%   10.8%  4-7
 5     Integer_Pipeline     8.6%    9.9%  8-11
 6     Integer_Pipeline    10.5%   11.9%  12-15
 7     Integer_Pipeline     9.1%   10.4%  16-19
 8     Integer_Pipeline     9.6%   10.9%  20-23
 9     Integer_Pipeline     8.9%   10.0%  24-27
10     Integer_Pipeline     9.5%   10.7%  28-31

       SUMMARY: UTILIZATION OVER 120 SECONDS

                             ------HARDWARE------ ------SOFTWARE------
PG  RELATIONSHIP             MIN    AVG    MAX    MIN    AVG    MAX CPUS
 0  System                     -      -      -  10.7%  10.7%  56.9% 0-31
 3   Data_Pipe_to_memory       -      -      -  10.7%  10.7%  56.9% 0-31
 2    Floating_Point_Unit   0.0%   0.0%   0.0%  10.7%  10.7%  56.9% 0-31
 1     Integer_Pipeline     9.0%   8.5%  36.7%  10.7%  10.7%  58.7% 0-3
 4     Integer_Pipeline     9.6%   9.1%  41.9%  10.8%  10.8%  58.3% 4-7
 5     Integer_Pipeline     8.6%   8.1%  31.0%   9.9%   9.9%  58.0% 8-11
 6     Integer_Pipeline    10.5%  10.0%  30.7%  11.9%  11.9%  57.9% 12-15
 7     Integer_Pipeline     9.1%   8.6%  30.1%  10.4%  10.4%  55.8% 16-19
 8     Integer_Pipeline     9.6%   9.1%  40.2%  10.9%  10.9%  54.8% 20-23
 9     Integer_Pipeline     8.9%   8.4%  35.0%  10.0%  10.0%  56.0% 24-27
10     Integer_Pipeline     9.5%   8.9%  40.3%  10.7%  10.7%  55.8% 28-31
使用例 4 チップ別のハードウェアおよびソフトウェア使用率のビン化

次の例では、マシンは 128 のコアと 1024 のストランドを備えた SPARC-T5 です。

次に、タイムスタンプとそのあとにソケット (チップ) 別に集められた使用状況を出力します。

# pgstat -T d -B chip
       July 11, 2013 02:53:11 PM PDT
       ID      RELATIONSHIP                            HW      SW  CPUS
           16  Chip (Software)                          -    0.2%  0-127
           16  Chip (Data_Pipe_to_memory)            0.1%       -  0-127
           16  Chip (Floating_Point_Unit)            0.0%       -  0-127
           16  Chip (Integer_Pipeline)               0.1%       -  0-127

        65552  Chip (Software)                          -    0.0%  128-255
        65552  Chip (Data_Pipe_to_memory)            0.0%       -  128-255
        65552  Chip (Floating_Point_Unit)            0.0%       -  128-255
        65552  Chip (Integer_Pipeline)               0.0%       -  128-255

       131088  Chip (Software)                          -    0.0%  256-383
       131088  Chip (Data_Pipe_to_memory)            0.0%       -  256-383
       131088  Chip (Floating_Point_Unit)            0.0%       -  256-383
       131088  Chip (Integer_Pipeline)               0.0%       -  256-383

       196624  Chip (Software)                          -    0.0%  384-511
       196624  Chip (Data_Pipe_to_memory)            0.0%       -  384-511
       196624  Chip (Floating_Point_Unit)            0.0%       -  384-511
       196624  Chip (Integer_Pipeline)               0.0%       -  384-511

       262160  Chip (Software)                          -    0.0%  512-639
       262160  Chip (Data_Pipe_to_memory)            0.0%       -  512-639
       262160  Chip (Floating_Point_Unit)            0.0%       -  512-639
       262160  Chip (Integer_Pipeline)               0.0%       -  512-639

       327696  Chip (Software)                          -    0.8%  640-767
       327696  Chip (Data_Pipe_to_memory)            0.9%       -  640-767
       327696  Chip (Floating_Point_Unit)            0.0%       -  640-767
       327696  Chip (Integer_Pipeline)               2.1%       -  640-767

       393232  Chip (Software)                          -    0.0%  768-895
       393232  Chip (Data_Pipe_to_memory)            0.0%       -  768-895
       393232  Chip (Floating_Point_Unit)            0.0%       -  768-895
       393232  Chip (Integer_Pipeline)               0.0%       -  768-895

       458768  Chip (Software)                          -    0.0%  896-1023
       458768  Chip (Data_Pipe_to_memory)            0.0%       -  896-1023
       458768  Chip (Floating_Point_Unit)            0.0%       -  896-1023
       458768  Chip (Integer_Pipeline)               0.0%       -  896-1023

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

1

システムから PG 情報を取得できません。

2

指定された間隔、回数、またはすべての CPU、PG、および共有関係が無効です。

3

構文が正しくありません。

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
不確実

コマンド行オプションおよび出力は「不確実」です。

関連項目

cputrack(1)cpc(3CPC)libcpc(3LIB)attributes(7)attributes(7)dtrace(8)pginfo(8)

特定の仮想環境では、ハードウェアパフォーマンスカウンタへのアクセスが必要である統計が使用できない可能性があります。