sar コマンド

目的

システム・アクティビティー情報の収集、報告、保管を行います。

構文

sar [ { -A | [ -a ] [ -b ] [ -c ] [ -d ][ -k ] [ -m ] [ -q ] [ -r ] [ -u ] [ -V ] [ -v ] [ -w ] [ -y ] } ] [ -P ProcessorIdentifier, ... | ALL ] [ -ehh [ :mm [ :ss ] ] ] [ -f File ] [ -i Seconds ] [ -o File ] [ -s hh [ :mm [ :ss ] ] ] [ Interval [ Number ] ]

説明

sar コマンドは、NAS Gateway 500 System Software の選択された累算アクティビティー・カウンターの内容を標準出力に書き出します。アカウンティング・システムは、Number パラメーターと Interval パラメーターの値に基づいて、秒単位で指定された間隔で、指定された回数だけ情報を書き込みます。 Number パラメーターに対するデフォルトのサンプリング間隔は、1 秒です。また、収集したデータは、 -o File フラグで指定したファイルに保管できます。

sar コマンドは、以前にファイルに保管されていたレコードを抽出して標準出力に書き出します。このファイルは、-f フラグで指定したファイルか、またはデフォルトの標準システム・アクティビティー・データ・ファイル (/var/adm/sa/sadd ファイル) です。この場合の dd パラメーターは現在日を表します。

-P フラグが指定されなければ、 sar コマンドはシステム全体の (すべてのプロセッサー間でグローバルな) 統計情報を報告します。統計情報はパーセントまたは合計として表される値の平均値です。 -P フラグが指定されると、 sar コマンドは指定されたプロセッサーに関連するアクティビティーを報告します。 -P ALL が指定されると、 sar コマンドは個々のプロセッサーの統計情報を報告してから、システム全体の統計情報を報告します。

フラグを使用して、特定のシステム・アクティビティーに関する情報を選択できます。フラグを指定しない場合は、システム・デバイス・アクティビティーのみが選択されます。また -A フラグを指定すると、すべてのアクティビティーが選択されます。

sar コマンドのデフォルト・バージョン (CPU 使用状況レポート) は、主要なシステム・リソースをモニターする (CPU ので、ユーザーがシステム・アクティビティーの調査を始めるとき最初に実行する機能の 1 つになると思われます。CPU 使用率が 100% に近い (ユーザー + システム) 場合、サンプルされたワークロードは CPU 制約であることを示しています。これは、かなりの時間が入出力待ちに費やされている場合に、ディスク入出力の待機のために CPU 実行がブロックされていることを示しています。この入出力は、ファイル・アクセスを要求されたか、十分なメモリーがないために発生したページングに関連している可能性があります。

注:
システムがリモート ・ファイル・アクセスを待つのに費やす時間は、入出力待ち時間に累算されません。あるタスクの CPU 使用率と入出力待ち時間が比較的低く、応答時間が満足なものでない場合は、リモート入出力を待つのに費やされる時間を調べてみてください。リモート入出力待ちに関する統計情報を提供する高水準コマンドがないため、これを調べるにはトレース・データが役に立つことがあります。

CPU ディスク入出力待ち時間の計算方法

データはすべてバイナリー・フォーマットで集められ、ファイル (data.file) に保管されます。このデータは、sar コマンドに -f オプションを使用すると、選択しながら表示できます。

sar コマンドは、 sadc という名前のプロセスを呼び出しし、システムのデータにアクセスします。 cron コマンドで実行される 2 つのシェル・スクリプト (/usr/lib/sa/sa1 と /usr/lib/sa/sa2) が構成され、日次統計とレポートを提供します。 cron デーモンがシェル・スクリプトを実行する時点を指定するサンプル・スタンザが、/var/spool/cron/crontabs/adm の crontab ファイルに含まれています (ただし、コメント化されています)。この方法によるデータ収集は、長期間にわたるシステム使用法の特徴を明らかにし、ピーク使用時を判別するのに役立ちます。 sa1 スクリプトと sa2 スクリプトを cron コマンドで実行ししていない場合は、sa1 と sa2 をコマンド行から実行できます。

注:
sar コマンドはローカル・アクティビティーのみに関して報告します。

フラグ

-A -P フラグを指定しなければ、 -A フラグを指定することは -abckmqruvwy を指定するのと同じです。 -P フラグを指定すると、 -A-acmuw を指定するのと同じです。
-a システム・ファイル・アクセス・ルーチンのいずれかが 1 秒間に呼び出された回数を指定するファイル・アクセス・システム・ルーチンの使用状況を報告します。 -P フラグとともに使用すると、指定した各プロセッサーに関する情報が表示されます。以下の値が表示されます。
dirblk/s
特定のファイルのディレクトリー・エントリーを見付けるためにディレクトリー検索ルーチンによって読み取った 512 バイトのブロックの数。
iget/s
複数のファイルシステム・タイプをサポートするいくつかの i ノード検索ルーチンに対する呼び出し。 iget ルーチンは、ファイルまたはデバイスの i ノード構造へのポインターを戻します。
lookuppn/s
パス名を与えられた v ノードのアドレスを探すディレクトリー検索ルーチンに対する呼び出し。
-b 1 秒あたりの転送、アクセス、およびキャッシュ (カーネル・ブロック・バッファー・キャッシュ) の各ヒット率に関して、バッファー・アクティビティーを報告します。バージョン 3 のほとんどのファイルへのアクセスは、カーネル・ブロック・バッファーをバイパスするので、これらの統計情報は生成されません。ただし、プログラムがブロック・デバイスまたは入出力用ロウ・キャラクター型デバイスをオープンする場合は、従来のアクセス機構が使用されて、生成された統計情報が意味を持ちます。以下の値が表示されます。
bread/s、bwrit/s
ブロック入出力の数を報告します。これらの入出力は通常カーネルによって、ブロック・バッファー・キャッシュ領域を管理するために実行されます。詳細は lread/s 値の説明を参照してください。
lread/s、lwrit/s
論理入出力の数を報告します。ブロック・デバイスに対して論理読み取りや書き込みが行われる場合、完全なブロック・サイズより小さい論理転送サイズが要求されることがあります。システムは、物理デバイス装置の完全なブロックにアクセスし、これらのブロックをこの目的のために設定されたカーネル・バッファー (ブロック入出力キャッシュ領域) に入れます。このキャッシュ領域はカーネルによって管理され、そのブロック・デバイスに対する複数の論理読み取りおよび書き込みが以前キャッシュからバッファーに入れられたデータにアクセスできるようになっています。したがって、そのデバイスへの実際の入出力を要求することはありません。アプリケーションのブロック・デバイスに対する読み取りおよび書き込み要求は、統計情報上では論理読み取りおよび書き込みとして報告されます。カーネルがキャッシュ領域の管理の中でブロック・デバイスに対して行ったブロック入出力は、ブロック読み取りおよびブロック書き込みとして報告されます。
pread/s、pwrit/s
ロウ・デバイスに対する入出力操作の数を報告します。ブロック・デバイスの場合、ロウ・キャラクター型デバイスへの要求された入出力はバッファーに入れられません。この入出力は直接そのデバイスに対して実行されます。
%rcache、%wcache
キャッシュ有効度 (キャッシュ・ヒット・パーセント) を報告します。このパーセントは、[(100)x(lreads - breads)/(lreads)] として計算されます。
-c システム・コールを報告します。 -P フラグとともに使用すると、指定した各プロセッサーに関する情報が表示されます。以下の値が表示されます。
exec/s、fork/s
fork システム・コールと exec システム・コールの総数を報告します。
sread/s、swrit/s
read/write システム・コールの総数を報告します。
rchar/s、wchar/s
read/write システム・コールによって転送された文字の総数を報告します。
scall/s
システム・コールの総数を報告します。

注: sar コマンド自身は、実行間隔によっては、かなりの数の読み取りおよび書き込みを生成することがあります。 sar コマンドがユーザーの統計情報全体のどのくらいを占めているかを知るには、ワークロードなしの sar 統計情報を実行してください。
-d 各ブロック・デバイスのアクティビティーを報告します。ただし、磁気テープ・ドライブは例外で、この報告には含まれません。報告されるアクティビティーのデータには、次のものが含まれます。
%busy、avque
デバイスが転送要求のサービスに使用中だった時間と、その時間内に未解決だった要求の平均数。
read/s、write/s、blks/s
デバイスでやり取りされた read/write の転送の数と、 512 バイト単位で転送されたバイト数を報告します。
avwait、avserv
インプリメントされていません。常に 0.0 に設定されます。
-e hh[:mm[:ss]] レポートの終了時刻を設定します。デフォルトの終了時間は 18:00 です。
-f File レコードを File (-o File フラグによって作成されたもの) から抽出します。 File パラメーターのデフォルト値は、現在の日次データ・ファイル (/var/adm/sa/sadd ファイル) です。
-i Seconds Seconds パラメーターで指定した数にできる限り近い秒数でデータ・レコードを選択します。このフラグを指定しないと、 sar コマンドはデータ・ファイル内のすべての秒に関して報告します。
-k カーネル・プロセス活動を報告します。以下の値が表示されます。
kexit/s
カーネル・プロセスの 1 秒あたりの終了回数を報告します。
kproc-ov/s
プロセスのしきい値制限の強制によりカーネル・プロセスを作成できなかった回数を報告します。
ksched/s
タスクに割り当てられたカーネル・プロセスの 1 秒あたりの回数を報告します。
-m 1 秒あたりのメッセージ (送受信) アクティビティーおよびセマフォー (作成、使用、および破棄) アクティビティーを報告します。 -P フラグとともに使用すると、指定した各プロセッサーに関する情報が表示されます。以下の値が表示されます。
msg/s
IPC メッセージ・プリミティブの数を報告します。
sema/s
IPC セマフォー・プリミティブの数を報告します。
-o File 読み取りをバイナリー・フォーマットでファイルに保管します。各読み取りは個別のレコード内に保管され、各レコードには読み取りの時間を識別するタグが付けられます。
-P ProcessorIdentifier, ... | ALL 指定したプロセッサー (複数の場合もある) のプロセッサーごとの統計情報を報告します。 ALL キーワードを指定すると、個々のプロセッサーの統計情報とすべてのプロセッサーに関するグローバルな統計情報が報告されます。レポートされる統計情報を指定するフラグのうち、-P フラグとの併用に意味があるのは、 -a-c-m-u、および -w フラグのみです。
-q キューの統計情報を報告します。以下の値が表示されます。
runq-sz
実行キューに入っているカーネル・スレッドの平均個数を報告します。
%runocc
実行キューが占有されている時間の割合を報告します。
swpq-sz
ページインを待つカーネル・スレッドの平均個数を報告します。
%swpocc
スワップ・キューが占有されている時間の割合を報告します。

注: 上記の欄がブランクの場合は、対応するキューが空であることを示します。
-r ページング統計情報を報告します。以下の値が表示されます。
cycle/s
1 秒あたりのページ置き換えサイクルの数を報告します。
fault/s
1 秒あたりのページ・フォールトの数を報告します。これは、入出力を生成するページ・フォールトの数ではありません。入出力なしで解決できるページ・フォールトもあるからです。
slots
ページング・スペース上のフリー・ページの数を報告します。
odio/s
1 秒当たりの非ページング・ディスク入出力の数を報告します。
-s hh[:mm[:ss]] データの開始時刻を設定します。これにより、sar コマンドは指定した時刻またはそれ以降の時刻でタイム・タグされたレコードを抽出します。デフォルトの開始時刻は、08:00 です。
-u 個々のプロセッサーの統計情報またはシステム全体の統計情報です。 -P フラグとともに使用すると、指定した各プロセッサーに関する情報が表示されます。そうでない場合は、システム全体に関する情報のみが表示されます。 -u フラグの情報はパーセントで表されるので、システム全体の情報は各プロセッサーの統計情報の単なる平均値です。また、入出力待ち状態はプロセッサーごとに定義されるのではなく、システム単位で定義されます。以下の値が表示されます。
%idle
1 つ以上の CPU が未解決のディスク入出力要求なしにアイドル状態だった時間のパーセンテージを報告します。
%sys
1 つ以上の CPU がシステム・レベル (またはカーネル・レベル) で実行に費やした時間のパーセンテージを報告します。
%usr
1 つ以上の CPU がユーザー・レベル (またはアプリケーション・レベル) で実行に費やした時間のパーセンテージを報告します。
%wio
システムに 1 つ以上の未解決のディスク/NFS 入出力要求があるときに、1 つ以上の CPU がアイドル状態だった時間のパーセンテージを報告します。前述の詳しい説明を参照してください。

注: sar コマンドは、特定の内容を指定する他のオプションが要求されていない場合に、システム・デバイス・アクティビティーを報告します。
-V 以前のバージョンの NAS Gateway 500 System Software で作成された sar ファイルを読み取ります。このフラグは -f フラグと一緒にのみ指定できます。
-v プロセス、カーネル・スレッド、i ノード、およびファイルの各テーブルの状況を報告します。以下の値が表示されます。
file-sz、inod-sz proc-szthrd-sz
各テーブルに使用されているエントリーの数を報告します。
-w システム切り替えアクティビティーを報告します。-P フラグとともに使用すると、指定した各プロセッサーに関する情報が表示されます。以下の値が表示されます。
pswch/s
1 秒あたりのコンテキストの切り替え数を報告します。
-y 1 秒あたりのの tty デバイス・アクティビティーを報告します。
canch/s
tty 正規入力キュー文字を報告します。このフィールドは常に 0 (ゼロ) です。
mdmin/s
tty モデム割り込みを報告します。
outch/s
tty 出力キュー文字を報告します。
rawch/s
tty 入力キュー文字を報告します。
revin/s
tty 受信割り込みを報告します。
xmtin/s
tty 送信割り込みを報告します。

  1. システム・デバイス・アクティビティーを報告するには、次のように入力します。

    sar
  2. 次の 20 秒間で 2 秒おきに現在の tty アクティビティーの報告を取得するには、次のように入力します。
    sar -y -r 2 20
  3. システム・デバイスを 10 分間観察してデータをソートするには、次のように入力します。
    sar -o temp 60 10
  4. 最初の 2 つのプロセッサーについて CPU アクティビティーを報告するには、次のように入力します。
    sar -u -P 0,1
    この出力は、以下のようになります。

    CPU  %usr  %sys  %wio  %idle
    0      45    45     5      5
    1      27    65     3      5
  5. システム全体のすべてのプロセッサーについて、メッセージ、セマフォー、および CPU アクティビティーを報告するには、次のように入力します。
    sar -mu -P ALL
    プロセッサーが 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
  6. 以前のバージョンの NAS Gateway 500 System Software で生成された File というシステム・アクティビティー・ファイルを読み取るには、次のように入力します。
    sar -V -f File

関連情報