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

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

以下の作業を実行するには、sar コマンドを使用します。

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

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

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


    $ sar -a
    
    SunOS balmyday 5.10 s10_51 sun4u    03/18/2004
    
    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 コマンドによって表示される、フィールド名とオペレーティングシステムのルーチンを示します。

    iget/s

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

    namei/s

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

    dirbk/s

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

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

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

  1. 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

例 13–5 バッファー動作をチェックする (sar -b)

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


$ sar -b

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

00:00:04 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
01:00:00       0       0     100       0       0      94       0       0
02:00:01       0       0     100       0       0      94       0       0
03:00:00       0       0     100       0       0      92       0       0
04:00:00       0       1     100       0       1      94       0       0
05:00:00       0       0     100       0       0      93       0       0
06:00:00       0       0     100       0       0      93       0       0
07:00:00       0       0     100       0       0      93       0       0
08:00:00       0       0     100       0       0      93       0       0
08:20:00       0       1     100       0       1      94       0       0
08:40:01       0       1     100       0       1      93       0       0
09:00:00       0       1     100       0       1      93       0       0
09:20:00       0       1     100       0       1      93       0       0
09:40:00       0       2     100       0       1      89       0       0
10:00:00       0       9     100       0       5      92       0       0
10:20:00       0       0     100       0       0      68       0       0
10:40:00       0       1      98       0       1      70       0       0
11:00:00       0       1     100       0       1      75       0       0

Average        0       1     100       0       1      91       0       0

次の表は、-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 です。これらのエントリは、システムバッファリングの有効性を測定します。%rcache が 90% 未満の場合や、%wcache が 65% 未満の場合は、バッファー領域を大きくすればパフォーマンスを改善できる可能性があります。


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

  1. 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

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

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


$ sar -c

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

00:00:04 scall/s sread/s swrit/s  fork/s  exec/s rchar/s wchar/s
01:00:00      89      14       9    0.01    0.00    2906    2394
02:00:01      89      14       9    0.01    0.00    2905    2393
03:00:00      89      14       9    0.01    0.00    2908    2393
04:00:00      90      14       9    0.01    0.00    2912    2393
05:00:00      89      14       9    0.01    0.00    2905    2393
06:00:00      89      14       9    0.01    0.00    2905    2393
07:00:00      89      14       9    0.01    0.00    2905    2393
08:00:00      89      14       9    0.01    0.00    2906    2393
08:20:00      90      14       9    0.01    0.01    2914    2395
08:40:01      90      14       9    0.01    0.00    2914    2396
09:00:00      90      14       9    0.01    0.01    2915    2396
09:20:00      90      14       9    0.01    0.01    2915    2396
09:40:00     880     207     156    0.08    0.08   26671    9290
10:00:00    2020     530     322    0.14    0.13   57675   36393
10:20:00     853     129      75    0.02    0.01   10500    8594
10:40:00    2061     524     450    0.08    0.08  579217  567072
11:00:00    1658     404     350    0.07    0.06 1152916 1144203

Average      302      66      49    0.02    0.01   57842   55544

次の表は、-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 秒当たりの文字 (バイト) 数


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

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


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

例 13–7 ディスク動作をチェックする

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


$ sar -d

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

12:36:32   device        %busy   avque   r+w/s  blks/s  avwait  avserv

12:40:01   dad1             15     0.7      26     399    18.1    10.0
           dad1,a           15     0.7      26     398    18.1    10.0
           dad1,b            0     0.0       0       1     1.0     3.0
           dad1,c            0     0.0       0       0     0.0     0.0
           dad1,h            0     0.0       0       0     0.0     6.0
           fd0               0     0.0       0       0     0.0     0.0
           nfs1              0     0.0       0       0     0.0     0.0
           nfs2              1     0.0       1      12     0.0    13.2
           nfs3              0     0.0       0       2     0.0     1.9
           nfs4              0     0.0       0       0     0.0     7.0
           nfs5              0     0.0       0       0     0.0    57.1
           nfs6              1     0.0       6     125     4.3     3.2
           nfs7              0     0.0       0       0     0.0     6.0
           sd1               0     0.0       0       0     0.0     5.4
           ohci0,bu          0     0.0       0       0     0.0     0.0
           ohci0,ct          0     0.0       0       0     0.0     0.0
           ohci0,in          0     0.0       7       0     0.0     0.0
           ohci0,is          0     0.0       0       0     0.0     0.0
           ohci0,to          0     0.0       7       0     0.0     0.0

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

フィールド名 

説明 

デバイス

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

%busy

デバイスが転送要求のサービスでビジーであった時間 

avque

デバイスが転送要求のサービスでビジーであった時間の間の平均要求数 

r+w/s

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

blks/s

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

avwait

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

avserv

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

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


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

  1. 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 コマンドを使用すると、page デーモンに使用される CPU サイクル数が表示されます。サイクル数が大きく、pgfree/s フィールドと pgscan/s フィールドの値が大きければ、メモリー不足を示します。

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


例 13–8 ページアウトとメモリーをチェックする (sar -g)

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


$ sar -g

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

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

フィールド名 

説明 

pgout/s

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

ppgout/s

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

pgfree/s

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

pgscan/s

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

%ufs_ipf

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


カーネルメモリーの割り当て (KMA) のチェック

KMA を使用すると、カーネルサブシステムが必要に応じてメモリーを割り当てたり、解放したりできます。

KMA では、負荷のピーク時に必要と思われる最大メモリー容量を静的に割り当てることをせず、メモリーの要求を次の 3 つのカテゴリに分けます。

KMA は、2 つのメモリープールを管理して、「小」要求と「大」要求を満たします。「サイズ超過」要求は、システムページアロケータからメモリーを割り当てることで満たされます。

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

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

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

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


    $ 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

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

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


$ sar -k

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

00:00:04 sml_mem   alloc  fail  lg_mem   alloc  fail  ovsz_alloc  fail
01:00:00 6119744 4852865     0 60243968 54334808   156     9666560     0
02:00:01 6119744 4853057     0 60243968 54336088   156     9666560     0
03:00:00 6119744 4853297     0 60243968 54335760   156     9666560     0
04:00:00 6119744 4857673     0 60252160 54375280   156     9666560     0
05:00:00 6119744 4858097     0 60252160 54376240   156     9666560     0
06:00:00 6119744 4858289     0 60252160 54375608   156     9666560     0
07:00:00 6119744 4858793     0 60252160 54442424   156     9666560     0
08:00:00 6119744 4858985     0 60252160 54474552   156     9666560     0
08:20:00 6119744 4858169     0 60252160 54377400   156     9666560     0
08:40:01 6119744 4857345     0 60252160 54376880   156     9666560     0
09:00:00 6119744 4859433     0 60252160 54539752   156     9666560     0
09:20:00 6119744 4858633     0 60252160 54410920   156     9666560     0
09:40:00 6127936 5262064     0 60530688 55619816   156     9666560     0
10:00:00 6545728 5823137     0 62996480 58391136   156     9666560     0
10:20:00 6545728 5758997     0 62996480 57907400   156     9666560     0
10:40:00 6734144 6035759     0 64389120 59743064   156    10493952     0
11:00:00 6996288 6394872     0 65437696 60935936   156    10493952     0

Average  6258044 5150556     0 61138340 55609004   156     9763900     0

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

フィールド名 

説明 

sml_mem

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

alloc

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

fail

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

lg_mem

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

alloc

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

fail

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

ovsz_alloc

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

fail

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


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

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


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

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

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

    msg/s

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

    sema/s

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


例 13–10 プロセス間通信をチェックする (sar -m)

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


$ sar -m

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

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

  1. 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

例 13–11 ページイン動作をチェックする (sar -p)

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


$ sar -p

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

00:00:04  atch/s  pgin/s ppgin/s  pflt/s  vflt/s slock/s
01:00:00    0.09    0.00    0.00    0.78    2.02    0.00
02:00:01    0.08    0.00    0.00    0.78    2.02    0.00
03:00:00    0.09    0.00    0.00    0.81    2.07    0.00
04:00:00    0.11    0.01    0.01    0.86    2.18    0.00
05:00:00    0.08    0.00    0.00    0.78    2.02    0.00
06:00:00    0.09    0.00    0.00    0.78    2.02    0.00
07:00:00    0.08    0.00    0.00    0.78    2.02    0.00
08:00:00    0.09    0.00    0.00    0.78    2.02    0.00
08:20:00    0.11    0.00    0.00    0.87    2.24    0.00
08:40:01    0.13    0.00    0.00    0.90    2.29    0.00
09:00:00    0.11    0.00    0.00    0.88    2.24    0.00
09:20:00    0.10    0.00    0.00    0.88    2.24    0.00
09:40:00    2.91    1.80    2.38    4.61   17.62    0.00
10:00:00    2.74    2.03    3.08    8.17   21.76    0.00
10:20:00    0.16    0.04    0.04    1.92    2.96    0.00
10:40:00    2.10    2.50    3.42    6.62   16.51    0.00
11:00:00    3.36    0.87    1.35    3.92   15.12    0.00

Average     0.42    0.22    0.31    1.45    4.00    0.00

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

フィールド名 

説明 

atch/s

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

pgin/s

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

ppgin/s

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

pflt/s

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

vflt/s

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

slock/s

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


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

  1. sar -q コマンドを使用すると、以下の情報を報告できます。

    • 待ち行列に要求が入っている間の平均待ち行列の長さ

    • 待ち行列に要求が入っている時間の割合


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

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

    runq-sz

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

    %runocc

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

    swpq-sz

    sar コマンドのプロセスのスワップ待ち行列。

    %swpocc

    sar コマンドのプロセスのスワップ待ち行列。


例 13–12 待ち行列動作をチェックする

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


# sar -q
SunOS system2 5.10 Generic_142909-13 sun4u    06/28/2010

00:00:00 runq-sz %runocc swpq-sz %swpocc
01:00:00     1.0       7     0.0       0
02:00:00     1.0       7     0.0       0
03:00:00     1.0       7     0.0       0
04:00:00     1.0       7     0.0       0
05:00:00     1.0       6     0.0       0
06:00:00     1.0       7     0.0       0

Average      1.0       7     0.0       0

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

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


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

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

    freemem

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

    freeswap

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


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

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


$ sar -r

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

00:00:04 freemem freeswap
01:00:00   44717  1715062
02:00:01   44733  1715496
03:00:00   44715  1714746
04:00:00   44751  1715403
05:00:00   44784  1714743
06:00:00   44794  1715186
07:00:00   44793  1715159
08:00:00   44786  1714914
08:20:00   44805  1715576
08:40:01   44797  1715347
09:00:00   44761  1713948
09:20:00   44802  1715478
09:40:00   41770  1682239
10:00:00   35401  1610833
10:20:00   34295  1599141
10:40:00   33943  1598425
11:00:00   30500  1561959

Average    43312  1699242

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

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


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

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

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

    %usr

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

    %sys

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

    %wio

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

    %idle

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

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


例 13–14 CPU の使用状況をチェックする (sar -u)

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


$ sar -u

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

00:00:04    %usr    %sys    %wio   %idle
01:00:00       0       0       0     100
02:00:01       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:00       0       0       0      99
08:40:01       0       0       0      99
09:00:00       0       0       0      99
09:20:00       0       0       0      99
09:40:00       4       1       0      95
10:00:00       4       2       0      94
10:20:00       1       1       0      98
10:40:00      18       3       0      79
11:00:00      25       3       0      72

Average        2       0       0      98

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

  1. 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   

例 13–15 システムテーブルの状態をチェックする (sar -v)

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


$ sar -v

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

00:00:04  proc-sz    ov  inod-sz    ov  file-sz    ov   lock-sz
01:00:00   69/8010    0 3476/34703    0    0/0       0    0/0   
02:00:01   69/8010    0 3476/34703    0    0/0       0    0/0   
03:00:00   69/8010    0 3476/34703    0    0/0       0    0/0   
04:00:00   69/8010    0 3494/34703    0    0/0       0    0/0   
05:00:00   69/8010    0 3494/34703    0    0/0       0    0/0   
06:00:00   69/8010    0 3494/34703    0    0/0       0    0/0   
07:00:00   69/8010    0 3494/34703    0    0/0       0    0/0   
08:00:00   69/8010    0 3494/34703    0    0/0       0    0/0   
08:20:00   69/8010    0 3494/34703    0    0/0       0    0/0   
08:40:01   69/8010    0 3494/34703    0    0/0       0    0/0   
09:00:00   69/8010    0 3494/34703    0    0/0       0    0/0   
09:20:00   69/8010    0 3494/34703    0    0/0       0    0/0   
09:40:00   74/8010    0 3494/34703    0    0/0       0    0/0   
10:00:00   75/8010    0 4918/34703    0    0/0       0    0/0   
10:20:00   72/8010    0 4918/34703    0    0/0       0    0/0   
10:40:00   71/8010    0 5018/34703    0    0/0       0    0/0   
11:00:00   77/8010    0 5018/34703    0    0/0       0    0/0  

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

フィールド名 

説明 

proc-sz

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

inod-sz

メモリー内の合計 i ノード数とカーネル内で割り当て済みの最大 i ノード数の比。これは厳密な上限ではありません。ここからオーバーフローすることもあります。 

file-sz

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

ov

各テーブルのサンプルポイント間で発生しているオーバーフロー。  

lock-sz

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


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

  1. 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

    次に、 sar -w コマンド出力の対象となる値と説明を示します。

    swpin/s

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

    bswin/s

    スワップイン用に転送される 1 秒当たりのブロック数。 /* (float)PGTOBLK(xx->cvmi.pgswapin) / sec_diff */.

    swpot/s

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

    bswot/s

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

    pswch/s

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


    注 –

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



例 13–16 スワップ動作をチェックする (sar -w)

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


$ sar -w

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

00:00:04 swpin/s bswin/s swpot/s bswot/s pswch/s
01:00:00    0.00     0.0    0.00     0.0     132
02:00:01    0.00     0.0    0.00     0.0     133
03:00:00    0.00     0.0    0.00     0.0     133
04:00:00    0.00     0.0    0.00     0.0     134
05:00:00    0.00     0.0    0.00     0.0     133
06:00:00    0.00     0.0    0.00     0.0     133
07:00:00    0.00     0.0    0.00     0.0     132
08:00:00    0.00     0.0    0.00     0.0     131
08:20:00    0.00     0.0    0.00     0.0     133
08:40:01    0.00     0.0    0.00     0.0     132
09:00:00    0.00     0.0    0.00     0.0     132
09:20:00    0.00     0.0    0.00     0.0     132
09:40:00    0.00     0.0    0.00     0.0     335
10:00:00    0.00     0.0    0.00     0.0     601
10:20:00    0.00     0.0    0.00     0.0     353
10:40:00    0.00     0.0    0.00     0.0     747
11:00:00    0.00     0.0    0.00     0.0     804

Average     0.00     0.0    0.00     0.0     198

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

  1. 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

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

    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) は、それぞれ着信または発信文字数以下になります。そうでない場合は、不良回線がないかどうかをチェックしてください。


例 13–17 端末動作をチェックする (sar -y)

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


$ sar -y

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

00:00:04 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s
01:00:00       0       0       0       0       0       0
02:00:01       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:00       0       0       0       0       0       0
08:40:01       0       0       0       0       0       0
09:00:00       0       0       0       0       0       0
09:20:00       0       0       0       0       0       0
09:40:00       0       0       1       0       0       0
10:00:00       0       0      37       0       0       0
10:20:00       0       0       0       0       0       0
10:40:00       0       0       3       0       0       0
11:00:00       0       0       3       0       0       0

Average        0       0       1       0       0       0

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

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

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