Solaris のシステム管理 (上級編)

システム動作の監視 (sar)

次のような目的には、sar コマンドを使用します。

このコマンドの詳細は、sar(1) のマニュアルページを参照してください。

ファイルアクセスをチェックする方法 (sar -a)

sar -a コマンドを使用すると、ファイルアクセス操作の統計情報が表示されます。


$ sar -a
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00  iget/s namei/s dirbk/s
01:00:00       0       3       0
02:00:00       0       3       0
03:00:00       0       3       0
04:00:00       0       3       0
05:00:00       0       3       0
06:00:00       0       3       0
07:00:00       0       3       0
08:00:00       0       3       0
08:20:01       0       3       0
08:40:00       0       3       0
09:00:00       0       3       0
09:20:01       0      10       0
09:40:01       0       1       0
10:00:02       0       5       0

Average        0       4       0

次の表に、sar -a コマンドによってレポートされるオペレーティングシステムのルーチンを示します。

表 24–7 sar -a コマンドからの出力

フィールド名 

説明 

iget/s

ディレクトリ名検索キャッシュ (DNLC) 内に入っていない i ノードに対して出された要求数 

namei/s

1 秒当りのファイルシステムパスの検索数。namei で DNLC 内にディレクトリ名が見つからない場合は、iget が呼び出され、ファイルまたはディレクトリの i ノードが取得される。したがって、ほとんどの igets は DNLC が欠落した結果である

dirbk/s

1 秒間に実行されたディレクトリブロックの読み取り回数 

表示される値が大きいほど、カーネルはユーザーファイルへのアクセスに長い時間を費やしています。この時間には、プログラムとアプリケーションによるファイルシステムの使用量が反映されます。-a オプションを使用すると、アプリケーションのディスク依存度を表示できるので便利です。

バッファー動作をチェックする方法 (sar -b)

sar -b コマンドを使用すると、バッファー動作の統計情報が表示されます。

バッファーは、i ノード、シリンダグループブロック、間接ブロックなどのメタデータをキャッシュするために使用されます。


$ sar -b
00:00:00 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
01:00:00       0       0     100       0       0      55       0       0

次の表は、-b オプションを指定したときに表示されるバッファー動作を示します。

表 24–8 sar -b コマンドからの出力

フィールド名 

説明 

bread/s

ディスクからバッファーキャッシュに投入された 1 秒当りの平均読み取り数 

lread/s

バッファーキャッシュからの 1 秒当りの平均論理読み取り数 

%rcache

バッファーキャッシュ内で見つかった論理読み込み数の小数部 (lread/s に対する bread/s の比を 100% から差し引いた値)

bwrit/s

バッファーキャッシュからディスクに書き込まれた 1 秒当りの平均物理ブロック数 (512 ブロック) 

lwrit/s

バッファーキャッシュへの 1 秒当りの平均論理書き込み数 

%wcache

バッファーキャッシュ内で見つかった論理書き込み数の小数部 (lwrit/s に対する bwrit/s の比を 100% から差し引いた値)

pread/s

キャラクタ型デバイスインタフェースを使用する 1 秒当りの平均物理読み取り数 

pwrit/s

キャラクタ型デバイスインタフェースを使用する 1 秒当りの平均物理書き込み要求数 

最も重要なエントリは、キャッシュヒット率 %rcache%wcache です。この 2 つのエントリは、システムバッファーリングの効率を測定します。%rcache が 90% 未満の場合や、%wcache が 65% 未満の場合は、バッファー領域を大きくすればパフォーマンスを改善できる可能性があります。

例 — バッファー動作をチェックする

次のsar -b 出力の例は、すべてのデータは許容範囲に収まっているので、%rcache バッファーと %wcache バッファーが処理速度低下の原因ではないことを示します。すべてのデータは許容範囲に収まっています。


$ sar -b
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
01:00:00       0       0     100       0       0      50       0       0
02:00:00       0       0     100       0       0      45       0       0
03:00:00       0       0     100       0       0      72       0       0
04:00:00       0       0     100       0       0      43       0       0
05:00:00       0       0     100       0       0      42       0       0
06:00:00       0       0     100       0       0      48       0       0
07:00:00       0       0     100       0       0      42       0       0
08:00:00       0       0     100       0       0      48       0       0
08:20:01       0       0     100       0       0      42       0       0
08:40:00       0       0     100       0       0      48       0       0
09:00:00       0       0     100       0       0      43       0       0
09:20:01       0       2      99       0       2      83       0       0
09:40:01       0       0      98       0       0      61       0       0
10:00:02       0       1      99       0       0      62       0       0

Average        0       0      99       0       0      74       0       0

システムコールの統計情報をチェックする方法 (sar -c)

sar -c コマンドを使用すると、システムコールの統計情報が表示されます。


$ sar -c
00:00:00 scall/s sread/s swrit/s  fork/s  exec/s rchar/s wchar/s
01:00:00      38       2       2    0.00    0.00     149     120

次の表は、-c オプションを指定したときに報告されるシステムコールのカテゴリを示します。一般に、読み取りと書き込みはシステムコール合計の約半分を占めますが、割合はシステムで実行中の動作によって大幅に変動します。

表 24–9 sar -c コマンドからの出力

フィールド名 

説明 

scall/s

1 秒当たりのすべてのタイプのシステムコール数 (通常は、4 ないし 6 ユーザーのシステム上で 1 秒当たり約 30) 

sread/s

1 秒当りの read システムコール数

swrit/s

1 秒当りの write システムコール数

fork/s

1 秒当たりのfork システムコール数 (4 ないし 6 ユーザーのシステム上で毎秒約 0.5)。この数値は、シェルスクリプトの実行中は大きくなる

exec/s

1 秒当りの exec システムコール数。exec/sfork/s で割った値が 3 より大きい場合は、効率の悪い PATH 変数を調べる

rchar/s

read システムコールによって転送される 1 秒当りの文字 (バイト) 数

wchar/s

write システムコールによって転送される 1 秒当りの文字 (バイト) 数

例 — システムコールの統計情報をチェックする

次の例は、sar -c コマンドからの出力を示します。


$ sar -c
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00 scall/s sread/s swrit/s  fork/s  exec/s rchar/s wchar/s
01:00:00     118      14       9    0.00    0.00    3360    2506
02:00:00     118      14       9    0.00    0.00    3360    2505
03:00:00     118      14       9    0.00    0.00    3361    2506
04:00:00     118      14       9    0.01    0.00    3363    2506
05:00:00     118      14       9    0.00    0.00    3360    2505
06:00:00     118      14       9    0.00    0.00    3360    2505
07:00:00     118      14       9    0.00    0.00    3360    2505
08:00:00     118      14       9    0.00    0.00    3360    2505
08:20:01     120      14       9    0.00    0.00    3394    2522
08:40:00     119      14       9    0.01    0.01    3357    2502
09:00:00     119      14       9    0.01    0.00    3356    2500
09:20:01     437      76      48    0.04    0.04   19606    6531
09:40:01     585     117      73    0.00    0.00   12962   10119
10:00:02     564      97      60    0.03    0.03   16354    6196

Average      159      22      14    0.01    0.01    4657    3017

ディスク動作をチェックする方法 (sar -d)

sar -d コマンドを使用すると、ディスク動作の統計情報が表示されます。


$ sar -d
00:00:00   device        %busy   avque   r+w/s  blks/s  avwait  avserv

01:00:00   fd0               0     0.0       0       0     0.0     0.0

次の表は、-d オプションを指定したときに報告されるディスクデバイスの動作を示します。

表 24–10 sar -d コマンドからの出力

フィールド名 

説明 

device

監視中のディスクデバイス名 

%busy

デバイスが転送要求のサービスに費やす時間の割合 

avque

平均待ち時間と平均サービス時間の合計 

r+w/s

デバイスへの 1 秒当りの読み取り転送数と書き込み転送数 

blks/s

デバイスに転送される 1 秒当たりの 512 バイトブロック数 

avwait

待ち行列内の転送要求の平均アイドル時間 (ミリ秒単位)。これは、待ち行列が占有されている場合のみ計測される 

avserv

デバイスが 1 転送要求の処理に要する平均時間 (ミリ秒単位)。ディスクの場合は、この値にシークタイム、回転待ち時間、データ転送時間が含まれる 

待ち行列内に何かがあるときは、待ち行列の長さと待ち時間が計測されるので注意してください。%busy の値が小さい場合に、待ち行列とサービス時間が大きければ、変更されたブロックをディスクに随時書き込むために、システムが定期的に処理していることを示す場合があります。

例 — ディスク動作をチェックする

次の例は、sar -d コマンドからの一部省略した出力を示します。


$ sar -d
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00   device        %busy   avque   r+w/s  blks/s  avwait  avserv

01:00:00   dad0              0     0.0       0       0    18.1    14.9
           dad0,a            0     0.0       0       0     0.0     0.0
           dad0,b            0     0.0       0       0     0.0    15.1
           dad0,c            0     0.0       0       0     0.0     0.0
           dad0,d            0     0.0       0       0    20.1    14.9
           dad0,e            0     0.0       0       0     0.0     0.0
           dad0,g            0     0.0       0       0     0.0     0.0
           dad0,h            0     0.0       0       0     0.0     0.0
           fd0               0     0.0       0       0     0.0     0.0
           nfs1              0     0.0       0       0     0.0     0.0
           nfs2              0     0.0       0       0     2.9     4.4
           nfs3              0     0.0       0       0     0.0     0.0
           sd0               0     0.0       0       0     0.0     0.0

ページアウトとメモリーをチェックする方法 (sar -g)

sar -g コマンドを使用すると、ページアウト動作の平均値とメモリー解放動作の平均値とが表示されます。


$ sar -g
00:00:00  pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
01:00:00     0.00     0.00     0.00     0.00     0.00

sar -g コマンドで表示される出力は、より多くのメモリーが必要かどうかを判断するのに役立ちます。 ps -elf コマンドを使用すると、ページデーモンに使用される CPU サイクル数が表示されます。サイクル数が大きく、pgfree/spgscan/s の値が大きければ、メモリー不足を示します。

また、sar -g を使用すると、i ノードの再利用間隔が短すぎるために、再利用可能なページが失われているかどうかも表示されます。

次の表に -g オプションからの出力について説明します。

表 24–11 sar -g コマンドからの出力

フィールド名 

説明 

pgout/s

1 秒間にページアウトされた要求数 

ppgout/s

1 秒間に実際にページアウトされたページ数(1 つのページアウト要求で複数のページがページアウトされることがある) 

pgfree/s

空きリストに配置された 1 秒当りのページ数  

pgscan/s

ページデーモンによって走査された 1 秒当りのページ数。この値が大きい場合は、ページデーモンが空きメモリーのチェックに大量の時間を費やしている。これは、メモリーを増やす必要があることを示す 

%ufs_ipf

ufs がそれに関連付けられた再使用可能ページを持つ iget によって空きリストから取り出された割合。これらのページはフラッシュされ、プロセスが回収できなくなる。したがって、これはページフラッシュを 伴う igets の割合である。値が大きければ、i ノードの空きリストがページ境界であり、ufs の i ノード数を増やす必要があることを示す

例 — ページアウトとメモリーをチェックする

次の例は、sar -g コマンドからの出力を示します。


$ sar -g
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00  pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
01:00:00     0.00     0.00     0.00     0.00     0.00
02:00:00     0.01     0.01     0.01     0.00     0.00
03:00:00     0.00     0.00     0.00     0.00     0.00
04:00:00     0.00     0.00     0.00     0.00     0.00
05:00:00     0.00     0.00     0.00     0.00     0.00
06:00:00     0.00     0.00     0.00     0.00     0.00
07:00:00     0.00     0.00     0.00     0.00     0.00
08:00:00     0.00     0.00     0.00     0.00     0.00
08:20:01     0.00     0.00     0.00     0.00     0.00
08:40:00     0.00     0.00     0.00     0.00     0.00
09:00:00     0.00     0.00     0.00     0.00     0.00
09:20:01     0.05     0.52     1.62    10.16     0.00
09:40:01     0.03     0.44     1.47     4.77     0.00
10:00:02     0.13     2.00     4.38    12.28     0.00
10:20:03     0.37     4.68    12.26    33.80     0.00

Average      0.02     0.25     0.64     1.97     0.00

カーネルメモリーの割り当てをチェックする方法 (sar -k)

sar -k コマンドを使用すると、KMA (Kernel Memory Allocator) に関して次の動作が表示されます。

KMA を使用すると、カーネルサブシステムは必要に応じてメモリーを割り当て、解放できます。最大量のメモリーを静的に割り当てるのではなく、ピークを下回る負荷を要求するのが予想されるため、KMA はメモリー要求を「小」(256 バイト未満)、「大」(512 バイト 〜 4K バイト)、「サイズ超過」 (4K バイト超) という 3 つのカテゴリに分けます。 また、2 つのメモリープールを管理して、「小」要求と「大」要求を満たします。「サイズ超過」要求は、システムページアロケータからメモリーを割り当てることで満たされます。

KMA 資源を使用するドライブや STREAMS の作成に使用中のシステムを調査する場合は、sar -k コマンドを使用すると便利です。それ以外の場合は、このコマンドで提供される情報は不要です。KMA 資源を使用するが、終了前には特に資源を返さないドライバやモジュールがあると、メモリーのリークが生じることがあります。メモリーリークが発生すると、KMA によって割り当てられるメモリーは時間が経つにつれて増大します。したがって、sar -k コマンドの alloc フィールドの値が時間が経つにつれ増える場合は、メモリーリークの可能性があります。メモリーリークのもう 1 つの兆候は、要求が失敗することです。この問題が発生した場合は、メモリーリークのために KMA がメモリーを予約したり割り当てたりできなくなっている可能性があります。

メモリーリークが発生した場合は、KMA からメモリーを要求したが返していないドライバや STREAMS がないかどうかをチェックする必要があります。


$ sar -k
00:00:00 sml_mem   alloc  fail  lg_mem   alloc   fail  ovsz_alloc  fail
01:00:00 2523136 1866512     0 18939904 14762364    0      360448     0
02:00:02 2523136 1861724     0 18939904 14778748    0      360448     0

次の表に -k オプションからの出力について説明します。

表 24–12 sar -k コマンドからの出力

フィールド名 

説明 

sml_mem

KMA が小メモリー要求プール内で使用できるメモリーのバイト数 (小要求は 256 バイト未満) 

alloc

KMA が小メモリー要求プールから小メモリー要求に割り当てたメモリーのバイト数 

fail

小量のメモリーで失敗した要求数  

lg_mem

KMA が大メモリー要求プール内で使用できるメモリーのバイト数 (大要求は 512 バイトから 4K バイトまで) 

alloc

KMA が大メモリー要求プールから大メモリー要求に割り当てたメモリーのバイト数 

fail

大メモリーで失敗した要求数 

ovsz_alloc

サイズ超過要求 (4K バイトを超える要求) に割り当てられたメモリーの容量。これらの要求はページアロケータによって満たされる。このため、プールはない 

fail

サイズ超過メモリーで失敗した要求数 

例 — カーネルメモリーの割り当てをチェックする (sar)

次の例は、sar -k 出力を示します。


$ sar -k
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:05 sml_mem   alloc  fail  lg_mem   alloc  fail  ovsz_alloc  fail
01:00:03 1761280 1209760     0 4833280 3955104     0     2293760     0
02:00:05 1761280 1209020     0 4833280 3953360     0     2293760     0
03:00:03 1761280 1208712     0 4833280 3972096     0     2293760     0
04:00:03 1761280 1209796     0 4833280 3976432     0     2293760     0
05:00:03 1761280 1207708     0 4833280 3976864     0     2293760     0
06:00:04 1761280 1208112     0 4833280 3977200     0     2293760     0
07:00:04 1761280 1209024     0 4833280 3977200     0     2293760     0
08:00:04 1761280 1208932     0 4833280 4035120     0     2293760     0
08:20:04 1761280 1210480     0 4833280 4035120     0     2293760     0
08:40:04 1761280 1210592     0 4833280 4035968     0     2293760     0
09:00:03 1761280 1212440     0 4833280 4039024     0     2293760     0
09:20:04 1761280 1214388     0 4833280 4043792     0     2293760     0
09:40:04 1761280 1210760     0 4833280 4041744     0     2293760     0
10:00:05 1761280 1208192     0 4833280 4040496     0     2293760     0
10:20:03 1761280 1213404     0 4833280 4046576     0     2293760     0
10:40:02 1761280 1212184     0 4833280 4046576     0     2293760     0

Average  1761280 1210219     0 4833280 4009542     0     2293760     0

プロセス間通信をチェックする方法 (sar -m)

sar -m コマンドを使用すると、プロセス間通信の動作が表示されます。


$ sar -m 
00:00:00   msg/s  sema/s
01:00:00    0.00    0.00

通常、これらの数字は、メッセージやセマフォを使用するアプリケーションを実行していない限りゼロ (0.00) です。

次の表に -m オプションからの出力について説明します。

表 24–13 sar -m コマンドからの出力

フィールド名 

説明 

msg/s

1 秒当りのメッセージ処理 (送受信) 数 

sema/s

1 秒当りのセマフォ処理数 

例 — プロセス間通信をチェックする

次の例は、sar -m コマンドからの一部省略した出力を示します。


$ sar -m
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00   msg/s  sema/s
01:00:00    0.00    0.00
02:00:02    0.00    0.00
03:00:00    0.00    0.00
04:00:00    0.00    0.00
05:00:01    0.00    0.00
06:00:00    0.00    0.00

Average     0.00    0.00

ページイン動作をチェックする方法 (sar -p)

sar -p コマンドを使用すると、保護フォルトや変換フォルトを含むページイン動作が表示されます。


$ sar -p
00:00:00  atch/s  pgin/s ppgin/s  pflt/s  vflt/s slock/s
01:00:00    0.07    0.00    0.00    0.21    0.39    0.00

次の表に -p オプションから報告される統計情報を示します。

表 24–14 sar -p コマンドからの出力

フィールド名 

説明 

atch/s

現在メモリーに入っているページを回収して満たされる 1 秒当りのページフォルト数 (1 秒当りの付加数)。この例には、空きリストから無効なページを回収し、別のプロセスに現在使用中のテキストページを共有する処理が含まれる (たとえば、複数のプロセスが同じプログラムテキストにアクセスしている場合など) 

pgin/s

ファイルシステムがページイン要求を受信する 1 秒当りの回数 

ppgin/s

ページインされる 1 秒当りのページ数。ソフトロック要求 (slock/s を参照) などの 1 つのページイン要求や、大型ブロックサイズでは、複数のページがページインされることがある

pflt/s

保護エラーによるページフォルト数。保護フォルトの例には、ページへの不正なアクセスや、「書き込み時コピー」などがある。通常、この数値は主に「書き込み時コピー」からなっている 

vflt/s

1 秒当りのアドレス変換ページフォルト数。これは、有効性フォルトと呼ばれ、所定の仮想アドレスに有効なプロセステーブルエントリが存在しないときに発生する 

slock/s

物理入出力を要求するソフトウェアロック要求によって発生する 1 秒当りのフォルト数。ソフトロック要求の発生例には、ディスクからメモリーへのデータ転送などがある。システムはデータを受信しないページをロックするので、別のプロセスはそれを回収して使用できない 

例 — ページイン動作をチェックする

次の例は、sar -p コマンドからの出力を示します。


$ sar -p
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00  atch/s  pgin/s ppgin/s  pflt/s  vflt/s slock/s
01:00:00    1.00    0.00    0.00    0.26    1.13    0.00
02:00:00    1.00    0.00    0.00    0.26    1.13    0.00
03:00:00    1.01    0.00    0.00    0.29    1.17    0.00
04:00:00    1.03    0.00    0.00    0.34    1.27    0.00
05:00:00    1.00    0.00    0.00    0.26    1.13    0.00
06:00:00    1.00    0.00    0.00    0.26    1.13    0.00
07:00:00    1.00    0.00    0.00    0.26    1.13    0.00
08:00:00    1.00    0.00    0.00    0.26    1.13    0.00
08:20:01    1.03    0.00    0.00    0.32    1.26    0.00
08:40:00    1.03    0.00    0.00    0.32    1.26    0.00
09:00:00    1.03    0.00    0.00    0.42    1.43    0.00
09:20:01    2.17    1.37    1.95    2.59   50.06    0.00
09:40:01    0.09    0.52    0.63    0.27  105.42    0.00
10:00:02    0.65    2.59    3.11    1.19   42.19    0.00
10:20:03    1.69   11.45   13.77    4.36   39.58    0.00
10:40:01    0.08    0.31    0.32    1.56   12.23    0.00

Average     1.00    0.51    0.62    0.55    8.79    0.00

待ち行列動作をチェックする方法 (sar -q)

sar -q コマンドを使用すると、待ち行列に要求が入っている平均待ち行列の長さと、その間の時間の割合が表示されます。


$ sar -q
00:00:00 runq-sz %runocc swpq-sz %swpocc

次の表に -q オプションからの出力について説明します。

表 24–15 sar -q コマンドの出力

フィールド名 

説明 

runq-sz

CPU を実行するためにメモリー内で待機中のカーネルスレッド数。通常、この値は 2 未満になる。値が常に 2 より大きい場合は、システムが CPU の限界に到達している可能性がある 

%runocc

ディスパッチ待ち行列が使用されている時間の割合 

swpq-sz

sar では出力されなくなった

%swpocc

sar では出力されなくなった

例 — 待ち行列動作をチェックする

次の例は、sar -q コマンドからの出力を示します。%runocc の値が大きく (90 パーセント超)、runq-sz が 2 より大きい場合は、CPU の負荷が大きく、応答速度が低下しています。この場合は、CPU の容量を増やしてシステムの応答速度を適正化する必要があります。


$ sar -q
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00 runq-sz %runocc swpq-sz %swpocc
01:00:00     0.0       0     0.0       0
02:00:00     0.0       0     0.0       0
03:00:00     0.0       0     0.0       0
04:00:00     1.0       0     0.0       0
05:00:00     0.0       0     0.0       0
06:00:00     0.0       0     0.0       0
07:00:00     1.0       0     0.0       0
08:00:00     0.0       0     0.0       0
08:20:01     0.0       0     0.0       0
08:40:00     0.0       0     0.0       0
09:00:00     1.0       0     0.0       0
09:20:01     1.6       3     0.0       0
09:40:01     1.5       8     0.0       0
10:00:02     1.6       7     0.0       0
10:20:03     1.5       2     0.0       0
10:40:01     1.9       1     0.0       0
11:00:01     1.4       0     0.0       0
11:20:01     1.6       0     0.0       0

Average      1.6       1     0.0       0

未使用のメモリーをチェックする方法 (sar -r)

sar -r コマンドを使用すると、現在使用されていないメモリーページ数とスワップファイルのディスクブロック数が表示されます。


$ sar -r
00:00:00 freemem freeswap
01:00:00    2135   401922

次の表に -r オプションからの出力について説明します。

表 24–16 sar -r コマンドからの出力

フィールド名 

説明 

freemem

コマンドによるサンプル収集間隔の間にユーザープロセスに利用できる平均メモリーページ数。ページサイズはマシンに応じて異なる 

freeswap

ページスワップに使用可能な 512 バイトのディスクブロック数 

例 — 未使用のメモリーをチェックする

次の例は、sar -r コマンドからの出力を示します。


$ sar -r
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00 freemem freeswap
01:00:00    3454   834587
02:00:00    3449   834549
03:00:00    3446   834552
04:00:00    3440   834722
05:00:00    3433   834535
06:00:00    3432   834557
07:00:00    3426   834526
08:00:00    3423   834502
08:20:01    3425   835158
08:40:00    3421   834453
09:00:00    3422   834473
09:20:01    2455   817457
09:40:01     651   768238
10:00:02     862   748302
10:20:03     373   713652
10:40:01     506   717459
11:00:01     668   716669
11:20:01     537   715802

Average     2907   815627

CPU の使用状況をチェックする方法 (sar -u)

sar -u コマンドを使用すると、CPU 使用状況の統計情報が表示されます。


$ sar -u
00:00:00    %usr    %sys    %wio   %idle
01:00:00       0       0       0     100

オプションを指定しない sar コマンドは、sar -u と同じです。 特定の瞬間では、 プロセッサはビジー状態またはアイドル状態になっています。ビジー状態のときは、プロセッサはユーザーモードまたはシステムモードになっています。アイドル状態のときは、プロセッサは入出力の完了を待っているか、何も処理することがないので「待機」している状態です。

次の表に -u オプションからの出力について説明します。

表 24–17 sar -u コマンドからの出力

フィールド名 

説明 

%usr

プロセッサがユーザーモードになっている時間の割合が表示される 

%sys

プロセッサがシステムモードになっている時間の割合が表示される 

%wio

プロセッサがアイドル状態で入出力の完了を待っている時間の割合が表示される 

%idle

プロセッサがアイドル状態で入出力を待っていない時間の割合が表示される 

一般に、%wio の値が大きい場合は、ディスクの処理速度が低下していることを意味します。

例 — CPU の使用状況をチェックする

次の例は、sar -u コマンドからの出力を示します。


$ sar -u
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00    %usr    %sys    %wio   %idle
01:00:00       0       0       0     100
02:00:00       0       0       0     100
03:00:00       0       0       0     100
04:00:00       0       0       0     100
05:00:00       0       0       0     100
06:00:00       0       0       0     100
07:00:00       0       0       0     100
08:00:00       0       0       0     100
08:20:01       0       0       0     100
08:40:00       0       0       0     100
09:00:00       0       0       0     100
09:20:01       6       1       1      91
09:40:01      15       2       0      82
10:00:02      13       1       2      83
10:20:03       5       2       8      84
10:40:01       3       1       0      96
11:00:01       1       0       1      97
11:20:01       2       0       0      97

Average        2       0       0      98

システムテーブルの状態をチェックする方法 (sar -v)

sar -v コマンドを使用すると、プロセステーブル、i ノードテーブル、ファイルテーブル、および共有メモリーレコードテーブルの状態が表示されます。


$ sar -v
00:00:00  proc-sz    ov  inod-sz    ov  file-sz    ov   lock-sz
01:00:00   43/922     0 2984/4236    0  322/322     0    0/0   

次の表に -v オプションからの出力について説明します。

表 24–18 sar -v コマンドからの出力

フィールド名 

説明 

proc-sz

現在カーネル内で使用されているか、割り当てられているプロセスエントリ (proc 構造体) の数

inod-sz

メモリー内の合計 i ノード数とカーネル内で割り当て済みの最大 i ノード数の比。これは厳密な上限ではなく、超えることもできる 

file-sz

開いているシステムファイルテーブルのサイズ。ファイルテーブルには領域が動的に割り当てられるので、sz0 として表示される

ov

現在カーネル内で使用されているか割り当てられている共有メモリーレコードテーブルのエントリ数。共有メモリーレコードテーブルには領域が動的に割り当てられるので、sz0 として表示される

lock-sz

現在カーネル内で使用されているか割り当てられている共有メモリーレコードテーブルのエントリ数。共有メモリーレコードテーブルには領域が動的に割り当てられるので、sz0 として表示される

例 — システムテーブルの状態をチェックする

次の例は、sar -v コマンドからの一部省略した出力を示します。この例は、すべてのテーブルに十分なサイズがあり、オーバーフローは発生しないことを示します。これらのテーブルには、いずれも物理メモリーの容量に基づいて領域が動的に割り当てられます。


$ sar -v
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00  proc-sz    ov  inod-sz    ov  file-sz    ov   lock-sz
01:00:00   64/1898    0 4280/8467    0    0/0       0    0/0   
02:00:00   64/1898    0 4280/8467    0    0/0       0    0/0   
03:00:00   64/1898    0 4280/8467    0    0/0       0    0/0   
04:00:00   64/1898    0 4280/8467    0    0/0       0    0/0   
05:00:00   64/1898    0 4280/8467    0    0/0       0    0/0   
06:00:00   64/1898    0 4280/8467    0    0/0       0    0/0   
07:00:00   64/1898    0 4280/8467    0    0/0       0    0/0   
08:00:00   64/1898    0 4280/8467    0    0/0       0    0/0   
08:20:01   64/1898    0 4280/8467    0    0/0       0    0/0   
08:40:00   64/1898    0 4280/8467    0    0/0       0    0/0   
09:00:00   64/1898    0 4280/8467    0    0/0       0    0/0   
09:20:01   70/1898    0 4281/8467    0    0/0       0    0/0   
09:40:01   70/1898    0 4281/8467    0    0/0       0    0/0   
10:00:02   71/1898    0 4285/8467    0    0/0       0    0/0   

スワップ動作をチェックする方法 (sar -w)

sar -w コマンドを使用すると、スワッピングと切り替え動作が表示されます。


$ sar -w
00:00:00 swpin/s bswin/s swpot/s bswot/s pswch/s
01:00:00    0.00     0.0    0.00     0.0      22

次の表に、対象となる値と説明を示します。

表 24–19 sar -w コマンドからの出力

フィールド名 

説明 

swpin/s

メモリーに転送される 1 秒当りの軽量プロセス数 

bswin/s

メモリーからスワップアウトされる 1 秒当りの平均プロセス数。この数値が 1 より大きい場合は、メモリーを増やす必要がある 

swpot/s

メモリーからスワップアウトされる 1 秒当りの平均プロセス数。この数値が 1 より大きい場合は、メモリーを増やす必要がある 

bswot/s

スワップアウト用に転送される 1 秒当りのブロック数 

pswch/s

1 秒当りのカーネルスレッド切り替え数 


注 –

すべてのプロセスのスワップインには、プロセスの初期化が含まれます。


例 — スワップ動作をチェックする

次の例は、sar -w コマンドからの出力を示します。


$ sar -w
SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00 swpin/s bswin/s swpot/s bswot/s pswch/s
01:00:00    0.00     0.0    0.00     0.0      63
02:00:00    0.00     0.0    0.00     0.0      60
03:00:00    0.00     0.0    0.00     0.0      62
04:00:00    0.00     0.0    0.00     0.0      63
05:00:00    0.00     0.0    0.00     0.0      63
06:00:00    0.00     0.0    0.00     0.0      61
07:00:00    0.00     0.0    0.00     0.0      60
08:00:00    0.00     0.0    0.00     0.0      61
08:20:01    0.00     0.0    0.00     0.0      63
08:40:00    0.00     0.0    0.00     0.0      63
09:00:00    0.00     0.0    0.00     0.0      63
09:20:01    0.00     0.0    0.00     0.0     132
09:40:01    0.00     0.0    0.00     0.0     187
10:00:02    0.00     0.0    0.00     0.0     185
10:20:03    0.00     0.0    0.00     0.0     258
10:40:01    0.00     0.0    0.00     0.0     161
11:00:01    0.00     0.0    0.00     0.0     128
11:20:01    0.00     0.0    0.00     0.0     117
11:40:00    0.00     0.0    0.00     0.0     171
12:00:01    0.00     0.0    0.00     0.0      94
12:20:01    0.00     0.0    0.00     0.0      95
12:40:01    0.00     0.0    0.00     0.0      95
13:00:01    0.00     0.0    0.00     0.0      95
13:20:01    0.00     0.0    0.00     0.0      96
13:40:01    0.00     0.0    0.00     0.0      98
14:00:01    0.00     0.0    0.00     0.0      96
14:20:00    0.00     0.0    0.00     0.0      91
14:40:01    0.00     0.0    0.00     0.0      92
15:00:01    0.00     0.0    0.00     0.0     103

Average     0.00     0.0    0.00     0.0      88

端末動作をチェックする方法 (sar -y)

sar -y コマンドを使用すると、端末デバイスの動作を監視できます。


$ sar -y
00:00:00 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s
01:00:00       0       0       0       0       0       0

大量の端末入出力がある場合は、このレポートを使用して不良な行がないかどうかを判別できます。次の表に、記録される動作を示します。

表 24–20 sar -y コマンドからの出力

フィールド名 

説明 

rawch/s

1 秒当りの入力文字数 (raw 待ち行列) 

canch/s

標準待ち行列で処理される 1 秒当りの文字数 

outch/s

1 秒当りの出力文字数 (出力待ち行列) 

rcvin/s

1 秒当りの受信側ハードウェア割り込み数 

xmtin/s

1 秒当りの送信側ハードウェア割り込み数 

mdmin/s

1 秒当りのモデム割り込み数 

1 秒当りのモデム割り込み数 (mdmin/s) は、0 に近い値になります。また、1 秒当りの送受信側ハードウェア割り込み数 ( xmtin/srcvin/s) は、それぞれ着信または発信文字数以下になります。そうでない場合は、不良回線がないかどうかをチェックしてください。

例 — 端末動作をチェックする

次の例は、sar -y コマンドからの出力を示します。


$ sar -y

SunOS touchstone 5.9 Generic sun4u    03/04/2003

00:00:00 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s
01:00:00       0       0       0       0       0       0
02:00:00       0       0       0       0       0       0
03:00:00       0       0       0       0       0       0
04:00:00       0       0       0       0       0       0
05:00:00       0       0       0       0       0       0
06:00:00       0       0       0       0       0       0
07:00:00       0       0       0       0       0       0
08:00:00       0       0       0       0       0       0
08:20:01       0       0       0       0       0       0
08:40:00       0       0       0       0       0       0
09:00:00       0       0       0       0       0       0
09:20:01       0       0       6       0       0       0
09:40:01       0       0       0       0       0       0
10:00:02       0       0       1       0       0       0
10:20:03       0       0       6       0       0       0
10:40:01       0       0      15       0       0       0
11:00:01       0       0      20       0       0       0
11:20:01       0       0       4       0       0       0
11:40:00       0       0       4       0       0       0
12:00:01       0       0       0       0       0       0

Average        0       0       2       0       0       0

システム全体のパフォーマンスをチェックする方法 (sar -A)

sar -A コマンドを使用すると、すべてのオプションを指定した場合と同じように、システム全体を示す統計情報が表示されます。

このコマンドを使用すると、全体像を把握できます。複数のタイムセグメントからのデータが表示される場合は、レポートに平均値が含まれます。