sar コマンド
目的
システム・アクティビティー情報の収集、報告、保管を行います。
構文
/usr/sbin/sar [ { -A [ -M ] | [ -a ] [ -b ] [ -c ] [ -d ][ -k ] [ -m ] [ -q ] [ -r ] [ -u ] [ -v ] [ -w ] [ -y ] [ -M ] } ] [ -P processoridentifier, ... | ALL | RST [-O {sortcolumn=col_name[,sortorder={asc|desc}][,topcount=n]}]]] [ [ -@ wparname ] [ -e[YYYYYMMDD]hh [ :mm [ :ss ] ] ] [ -ffile ] [ -iseconds ] [ -ofile ] [ -s[YYYYYMMDD]hh [ :mm [:ss ] ] ][-x] [ Interval [ Number ] ]
説明
sar コマンドは、 オペレーティング・システム内の選択された累積アクティビティー状況カウンターの内容を標準出力に書き出します。 アカウンティング・システムは、number パラメーターと interval パラメーターの値に基づいて、 秒単位で指定された間隔で、指定された回数だけ情報を書き込みます。 number パラメーターのデフォルト・サンプリング間隔は 1 秒です。収集されたデータは、-o file フラグによって指定されたファイルに保管することもできます。
-X オプションが指定されると、sar コマンドは XML ファイルを生成します。
sar コマンドは、以前にファイルに保管されていたレコードを抽出して標準出力に書き出します。 このファイルは、-f フラグで指定したファイルか、 またはデフォルトの標準システム・アクティビティー・データ・ファイル (/var/adm/sa/sadd ファイル) です。 この場合の dd パラメーターは現在日を表します。
-P フラグが指定されなければ、 sar コマンドはシステム全体の (すべてのプロセッサー間でグローバルな) 統計情報を報告します。 統計情報はパーセントまたは合計として表される値の平均値です。 -P フラグが指定されると、 sar コマンドは指定されたプロセッサーに関連するアクティビティーを報告します。 -P ALL フラグが指定されると、sar コマンドは個々のプロセッサーに関する統計情報を報告し、 続いてシステム全体の統計情報を報告します。 -P ALL がワークロード区画環境で使用され、WPAR が rset レジストリーと 関連付けられている場合は、 リソース・セット統計情報とシステム全体の統計情報が表示されます。 リソース・セットに属するプロセッサーには、 アスタリスク記号 (*) の接頭部が付きます。
フラグを使用して、特定のシステム・アクティビティーに関する情報を選択できます。 フラグをまったく指定しない場合は、システムおよび WPAR ユニット・アクティビティーのみを選択します。また -A フラグを指定すると、すべてのアクティビティーが選択されます。 sar コマンドは、統計情報の出力を開始する前に、現在アクティブなプロセッサーの数とディスクの数を出力します。
デフォルト・バージョンの sar コマンド (プロセッサー使用状況報告) は、 システム・アクティビティーを調査するときに最初に実行する機能の 1 つになることがあります。 その理由は、デフォルト・バージョンの sar コマンドは主なシステム・リソースをモニターするからです。 プロセッサー使用率が 100% に近い (ユーザー + システム) 場合、 サンプルされたワークロードはプロセッサーの制約であることを示しています。 これは、かなりの時間が入出力待ちに費やされている場合に、 ディスク入出力の待機のためにプロセッサー実行がブロックされていることを示しています。 この入出力は、ファイル・アクセスを要求されたか、 十分なメモリーがないために発生したページングに関連している可能性があります。
CPU ディスク入出力待ち時間の算出に使用するメソッド
AIX® オペレーティング・システムでは、ディスク入出力を待つために費やされるプロセッサー時間 (wio 時間) のパーセンテージを算出するメソッドが強化されました。wio 時間は、コマンド sar (%wio)、 vmstat (wa)、 および iostat (% iowait) によって報告されます。
各プロセッサーでクロック割り込みが発生する (各プロセッサーで 1 秒間に 100 回) たびに、 その最後の 10 ミリ秒を 4 つのカテゴリー (usr/sys/wio/idle) のうちのどれに入れるかが決定されます。クロック割り込みが発生したときにプロセッサーが usr モードでビジー状態になっていた場合は、 そのクロック・ティックは usr のカテゴリーに追加されます。 クロック割り込みが発生したときにプロセッサーが kernel モードでビジー状態になっていた場合は、 そのクロック・ティックは sys のカテゴリーに追加されます。 プロセッサーがビジー状態になっていなかった場合は、 ディスクに対して何らかの入出力が進行中であったかどうかを確認するために、調査が行われます。 ディスク入出力が進行中の場合、wio カテゴリーに 1 加算されます。 進行中のディスク入出力がなく、プロセッサーもビジー状態でなかった場合には、idle のカテゴリーにティックが追加されます。 さきに述べた、実際よりも高い値が表示されるという状態は、入出力を扱うスレッドの数に関係なく、 アイドル状態のプロセッサーがすべて wio のカテゴリーに分類されることによって生じます。 例えば、入出力を扱っているスレッドがたった 1 つしかないシステムでは、 プロセッサーの数に関係なく、90% を超える wio 時間が報告されることがあります。
AIX オペレーティング・システムでは、アイドル状態のプロセッサーで未解決の入出力が開始された場合、そのプロセッサーに wio としてマークを付けます。このメソッドでは、入出力を扱うスレッドがごくわずかしかなく、 システムの他の部分がアイドル状態になっている場合に、もっと低い wio 時間を報告できるようになりました。 例えば、プロセッサーが 4 つあり、入出力を扱うスレッドが 1 つあるシステムでは、 最大でも 25% の wio 時間しか報告されません。 また、プロセッサーが 12 あり、入出力を扱うスレッドが 1 つあるシステムであれば、 報告される wio 時間は最大で 8% になります。 NFS クライアントの読み取りや書き込みは VMM を通り、 biod が VMM 内で入出力の完了を待つ時間が入出力の待ち時間として報告されるようになりました。
複数のサンプルと複数の報告が必要な場合は、sar コマンドに出力ファイルを指定した方が便利です。 sar コマンドからの標準出力データを /dev/null に送信し、 sar コマンドをバックグラウンド・プロセスとして実行します。 以下のような構文になります。
sar -A -o data.file interval count > /dev/null &
データはすべてバイナリー・フォーマットで集められ、 ファイル (data.file) に保管されます。 このデータは、sar コマンドに -f オプションを使用すると、選択しながら表示できます。
sar コマンドは、 sadc という名前のプロセスを呼び出し、 システムのデータにアクセスします。 2 つの シェル・スクリプト(/usr/lib/sa/sa1 と /usr/lib/sa/sa2 ) が、 cron コマンドによって実行されるよう 構成されています。その結果、日次統計情報と報告が生成されます。 サンプル・スタンザは、 /var/spool/cron/crontabs/adm crontab ファイルに含まれています (ただしコメント化されています)。これには、cron デーモンがいつシェル・スクリプトを実行すべきかが指定されています。このようにしてデータを収集すると、長期間にわたるシステムの使用方法を特性化し、ピーク使用時刻を判別するのに役立ちます。
/etc/rc スクリプトの対応する行のコメントを外すことによって、システム開始時に、標準システム・アクティビティー日次データ・ファイルにダミー・レコードを挿入できます。 sar コマンドは、プロセッサー時間が前のレコードより短くなっているレコードがあると、time change not positive と報告します。 これは、/etc/rc のダミー・レコード挿入行がコメントにされた状態でシステムをリブートする場合に発生します。
AIX 5.3 以降、sar コマンドは、Micro-Partitioning®環境および同時マルチスレッド化環境に関連した使用状況メトリック physc
および %entc
を報告します。これらのメトリックは、Micro-Partitioning環境および同時マルチスレッド化環境でのみ表示されます。
physc
は、区画 (システム全体の使用状況の場合) または論理プロセッサー (-P フラグが指定されている場合) が消費する物理プロセッサーの数を示します。%entc
は、割り当てられたライセンス容量 (システム全体の使用状況の場合) または認可されたライセンス容量 (-P フラグが指定されている場合) の百分率を示します。区画がキャップ付きモードで稼働している場合は、区画は割り振られた容量を超える容量を獲得できません。
キャップなしモードの場合は、区画は実際に割り振られた容量を超える容量を獲得できます。
これを認可されたライセンス容量と呼びます。
-P フラグが指定されている場合に未使用の容量があると、sar は、cpu id
U の別個のプロセッサーとして未使用の容量を出力します。
AIX 6.1 以降、sar コマンドは使用状況のメトリック %resc
を報告します。これは、ワークロード区画 (WPAR) 環境に関連します。%resc
メトリックは、WPAR が消費するプロセッサー・リソースのパーセンテージを示します。このフィールドは、プロセッサー・リソース制限が WPAR で実施されている場合にのみ表示されます。sar -P コマンドは、WPAR のリソース・セット (RSET) 使用状況メトリック R
を報告します。
System Management Interface Tool (SMIT) smit sar 高速パスを使用しても sar コマンドを実行できます。
フラグ
項目 | 説明 |
---|---|
-@ wparname | -@ フラグは、このコマンドがグローバル環境から WPAR でのプロセッサー使用を報告することを指定します。wparname パラメーターは、どの WPAR プロセッサー統計が
報告されるかを指定します。
注: -@ フラグは、
ワークロード区画内で実行された場合にはサポートされません。
注: -@ フラグを -d、-r、-y、-f、または -X フラグと同時に使用しないでください。
|
-A | -P フラグを指定せずに -A フラグを使用することは、-abcdkmqruvwy を指定するのと同じです。 -P フラグを指定すると、 -A は -acmuw を指定するのと同じです。 -M フラグを指定しないと、ヘッダーは最初の間隔のデータの前に 1 つのまとまりとなっている複数の行の中で 1 回だけ印刷されます。 このフラグを -M フラグと一緒に使用すると、各反復データの各行の前に該当するヘッダーが付けられます。 |
-a | システム・ファイル・アクセス・ルーチンのいずれかが 1 秒間に呼び出された回数を指定するファイル・アクセス・システム・ルーチンの使用状況を報告します。
-P フラグとともに使用すると、指定した各プロセッサーに関する情報が表示されます。
以下の値が表示されます。
|
-b | 1 秒あたりの転送、アクセス、およびキャッシュ (カーネル・ブロック・バッファー・キャッシュ) の各ヒット率に関して、バッファー・アクティビティーを報告します。
バージョン 3 のほとんどのファイルへのアクセスは、
カーネル・ブロック・バッファーをバイパスするので、これらの統計情報は生成されません。
ただし、プログラムがブロック・デバイスまたは入出力用ロー・キャラクター型デバイスを開く場合は、
従来のアクセス機構が使用されて、生成された統計情報が意味を持ちます。
以下の値が表示されます。
|
-c | システム・コールを報告します。
-P フラグとともに使用すると、指定した各プロセッサーに関する情報が表示されます。
以下の値が表示されます。
ヒント: sar コマンド自体は、実行間隔によっては、かなりの数の読み取りおよび書き込みを生成できます。
sar コマンドがユーザーの統計情報全体のどのくらいを占めているかを知るには、ワークロードなしの sar 統計情報を実行してください。
|
-d | 各ブロック・デバイスのアクティビティーを報告します。
ただし、XDC テープ・ドライブは例外で、この報告には含まれません。
次のデータが報告されます。
制限: -d フラグは、ワークロード区画内で制限されています。
|
-e[YYYYMMDD] hh[:mm[:ss]] | レポートの終了時刻を設定します。
デフォルトの終了時間は 18:00 です。
|
-f file | file (-o file フラグによって作成される) からレコードを抽出します。file パラメーターのデフォルト値は、現在の日次データ・ファイル (/var/adm/sa/sadd ファイル) です。 制限: [ interval [ number ] ] パラメーターを指定すると、-f フラグは無視されます。-f フラグは、ワークロード区画内では制限されます。
|
-i seconds | Seconds パラメーターで指定した数にできる限り近い秒数でデータ・レコードを選択します。 このフラグを指定しないと、 sar コマンドはデータ・ファイル内のすべての秒に関して報告します。 |
-k | カーネル・プロセス活動を報告します。
以下の値が表示されます。
|
-M | 少なくとも 2 つの [abckmqruvwy] の組み合わせと一緒に使用するか、-A フラグと一緒に使用すると、出力内で複数のヘッダーを指定することができます。このモードでは、各反復のデータの各行の前に対応するヘッダーが付けられます。
制限: このフラグは、[interval [number]] なしで使用された場合、無視されます。
|
-m | 1 秒あたりのメッセージ (送受信) アクティビティーおよびセマフォー (作成、使用、および破棄) アクティビティーを報告します。
-P フラグとともに使用すると、指定した各プロセッサーに関する情報が表示されます。
以下の値が表示されます。
|
-o file | 読み取りをバイナリー・フォーマットでファイルに保管します。 各読み取りは個別のレコード内に保管され、各レコードには読み取りの時間を識別するタグが付けられます。 |
-P processoridentifier , ... | ALL |RST | 指定したプロセッサー (複数の場合もある) のプロセッサーごとの統計情報を報告します。
ALL キーワードを指定すると、
個々のプロセッサーの統計情報とすべてのプロセッサーに関するグローバルな統計情報が報告されます。
RST オプションを指定すると、WPAR と関連付けられている rset レジストリーにあるプロセッサーの統計情報が報告されます。報告される統計を指定するフラグのうち、-a、-c、-m、-u、および -w フラグのみが、-P フラグと同時にグローバル環境で使用した場合に意味があります。WPAR 環境では、どのフラグも -P フラグと同時に使用しないでください。 注: sar コマンドが WPAR について報告する各プロセッサーの統計は、常にシステム全体です。
|
-q | キューの統計情報を報告します。
以下の値が表示されます。
ヒント: 上記の欄がブランクの場合は、対応するキューが空であることを示します。
|
-r | ページング統計情報を報告します。
以下の値が表示されます。
制限: -r フラグは、ワークロード区画内で制限されています。
|
-s[YYYYMMDD] hh[:mm[:ss]] | データの開始時刻を設定します。
これにより、sar コマンドは指定した時刻またはそれ以降の時刻でタイム・タグされたレコードを抽出します。
デフォルトの開始時刻は、08:00 です。
|
-u | 個々のプロセッサーの統計情報またはシステム全体の統計情報です。
-P フラグとともに使用すると、指定した各プロセッサーに関する情報が表示されます。
そうでない場合は、システム全体に関する情報のみが表示されます。
-u フラグの情報はパーセントで表されるので、
システム全体の情報は各プロセッサーの統計情報の単なる平均値です。
また、入出力待ち状態はプロセッサーごとに定義されるのではなく、システム単位で定義されます。
以下の値が表示されます。
ヒント:
|
-v | プロセス・テーブル、カーネル・スレッド、i ノード、およびファイル・テーブルの状況を報告します。
以下の値が表示されます。
|
-w | システム切り替えアクティビティーを報告します。
-P フラグとともに使用すると、指定した各プロセッサーに関する情報が表示されます。
以下の値が表示されます。
|
-y | 1 秒あたりの tty デバイス・アクティビティーを報告します。
制限: -y フラグは、ワークロード区画 内で制限されています。
|
-x | 各エントリーの日時を表示します。ユーザーが YYYYMMDD 形式で -s フラグまたは -e フラグに データを指定すると、必ず暗黙的に -x フラグがオンになります。 |
-OOptions | ユーザーがコマンド・オプションを指定できるようにします。
-O options=value... 以下はサポートされるオプションです。
|
-X | XML 出力を生成します。ユーザーが -o オプションを使用して別のファイル名を指定しなければ、デフォルトのファイル名は sar_DDMMYYHHMM.xml です。 |
-o | XML 出力のファイル名を指定します。 |
セキュリティー
アクセス制御: これらのコマンドは adm グループのメンバーにのみ実行 (x) アクセスを認可します。
例
- システム装置アクティビティーを報告するには、次のコマンドを入力します。
sar
- 次の 40 秒間、2 秒ごとに現行の TTY アクティビティーを報告するには、次のコマンドを入力します。
- 10 分間システム装置を監視してデータをソートするには、次のコマンドを入力してください。
sar -o temp 60 10
- 最初の 2 台のプロセッサーのプロセッサー・アクティビティーを報告するには、次のコマンドを入力します。
この出力は、以下のようになります。
cpu %usr %sys %wio %idle 0 45 45 5 5 1 27 65 3 5
- すべてのプロセッサーおよびシステム全体について、メッセージ、セマフォー、およびプロセッサー・アクティビティーを報告するには、次のコマンドを入力します。
プロセッサーが 4 つあるシステムでは、
次のような出力が生成されます (最後の行は、すべてのプロセッサーを合わせたシステム全体の統計情報を示しています)。
cpu msgs/s sema/s %usr %sys %wio %idle 0 7 2 45 45 5 5 1 5 0 27 65 3 5 2 3 0 55 40 1 4 3 4 1 48 41 4 7 - 19 3 44 48 3 5
- システム全体のすべてのプロセッサーについて、物理プロセッサーの消費量とライセンスの消費量を表示するには、次のように、sar コマンドを共用プロセッサー LPAR マシンで実行します。
論理プロセッサーが 2 つあるシステムでは、次のものに似た出力が生成されます。(最後の 2 行は、すべてのプロセッサーに関するシステム全体の統計情報を示し、sar –P ALL
cpuid U
の行は、システム全体の未使用容量を示します。)cpu %usr %sys %wio %idle physc %entc 0 0 0 0 100 0.02 3.1 1 0 0 0 100 0.00 1.0 U - - 0 96 0.48 96.0 - 0 0 0 100 0.02 4.0
- 次の 40 秒間、2 秒ごとに、システム呼び出し、カーネル・プロセス、およびページング・アクティビティーを、反復のたびに、3 行のデータごとの別々のヘッダーを付けて報告するには、次のコマンドを入力します。
sar -Mckr 2 20
- 次の 40 秒間、2 秒ごとに、複数のヘッダーのセットを付けて、すべてのアクティビティーを報告するには、次のコマンドを入力します。
sar -MA 2 20
- グローバル環境から WPAR でのプロセッサーの使用状況の統計を報告するには、次のコマンドを入力します。
sar -@ wparname
- WPAR 内から WPAR と関連付けられた rset レジストリーにあるすべてのプロセッサーのプロセッサー・アクティビティーを報告するには、次のコマンドを入力します。
sar -P RST 1 1
2 台の論理プロセッサーの RSET と関連付けられた WPAR では、前のコマンドにより以下のレポートに似たレポートが生成されます。19:34:39 cpu %usr %sys %wio %idle physc 19:34:40 0 0 2 0 98 0.54 1 0 0 0 100 0.46 R 0 1 0 99 1.00
- WPAR 内からすべてのプロセッサー・アクティビティーを報告するには、次のコマンドを入力します。
sar -P ALL 1 1
2 台の論理プロセッサーの RSET と関連付けられた WPAR では、前のコマンドにより以下のレポートに似たレポートが生成されます。19:34:39 cpu %usr %sys %wio %idle physc 19:34:40 *0 0 2 0 98 0.54 *1 0 0 0 100 0.46 R 0 1 0 99 1.00 - 0 1 0 99 1.00
- -w フラグを指定して列 cswch/s のソート済み出力を表示するには、次のコマンドを入力します。
sar -w -P ALL -O sortcolumn=cswch/s 1 1
- scall/s 列でソートされた上位 10 位以内の CPU をリストするには、次のコマンドを入力します。
sar -c -O sortcolumn=scall/s,sortorder=desc,topcount=10 -P ALL 1
ファイル
項目 | 説明 |
---|---|
/usr/sbin/sar | sar コマンドが入っています。 |
/bin/sar | sar コマンドに対するシンボリック・リンクを示します。 |
/var/adm/sa/sadd | 日次データ・ファイルを示します。 ここでの dd パラメーターは、(月のうちの) 日を表す数字です。 |