忍者ブログ
出来損ないのカメレオン
sar

稼働情報を5秒間隔で10回取得します。
% sar -o sar.log 5 10
-o ファイル指定
-A 全部出力

出力ファイルからCPU負荷を抜き出します。
% sar -f sar.log -u

メモリ使用量を抜き出します。
% sar -f sar.log -r

 

システムアクティビティレポートツール(sar)の利用 
 
sar の細かい説明は抜きとして、sar の出力を順番に説明していきます。
※ここでいう「順番」とは、sar を -A オプションで実行した際に表示される順番のこと。

1.sar -u の出力(CPUの使用状況)

--
出力例
--
00:00:00 %usr %sys %wio %idle
00:05:00 4 1 1 94
00:10:00 6 1 0 92
00:15:00 2 1 0 97
--
項目説明
--
%usr :ユーザモードで動作したCPU使用時間の割合
%sys :システムモードで動作したCPU使用時間の割合
%wio :I/O待ち時間の割合
%idle :アイドル状態であった時間の割合
--
評価
--
%wio > 10 → ディスクアクセスの負荷が高いと考えられる
--

2.sar -d の出力(ディスク使用状況)

--
出力例
--
17:00:01 device %busy avque r+w/s blks/s avwait avserv

17:05:01 atapicd2 0 0.0 0 0 0.0 0.0
nfs3 0 0.0 0 0 0.0 0.0
nfs6 0 0.0 0 0 0.4 5.4
sd0 3 0.9 4 64 0.0 206.0
sd0,a 1 0.1 0 3 0.0 427.0
sd0,b 0 0.0 0 0 0.0 0.0
sd0,d 2 0.2 1 8 0.0 271.5
sd0,f 2 0.1 1 17 0.0 126.3
sd0,g 1 0.1 0 6 0.0 320.9
sd0,h 2 0.4 2 30 0.0 189.8
sd1 0 0.0 0 0 0.0 0.0
st4 0 0.0 0 0 0.0 0.0
--
項目説明
--
device :モニタされたディスク名
%busy :デバイスが転送要求サービスに費やした時間の割合
avque :実行を待っている要求の平均数
r+w/s :デバイスへのreadとwriteの転送回数/秒
blks/s :デバイスに転送されたブロック数/秒(512バイト/ブロック)
avwait :転送要求がキュー上で持っていた平均時間(ミリ秒)
avserv :転送要求がデバイスからサービスを受けた平均時間(ミリ秒)
--
評価
--
%busy > 60 → ディスクアクセスの負荷が高いと考えられる
%busy の値がディスク間で偏っている → 負荷が偏っている
--

3.sar -q の出力(プロセスに関する情報)

--
出力例
--
17:00:01 runq-sz %runocc swpq-sz %swpocc
17:05:01 2.4 5
17:10:00 2.0 1
17:15:00 1.4 2
--
項目説明
--
runq-sz :メモリ上の実行可能なプロセスの実行キュー
%runocc :実行キューが占有されていた時間の割合
swpq-sz :スワップアウトされている実行可能なプロセスの実行キューの数
%swpocc :スワップアウトされている実行キューが占有されていた時間の割合
--
評価
--
runq > 3 and %runocc ≧ 90 or runq > 10 → CPU負荷が高い
--

4.sar -b の出力(システムバッファ使用状況)

--
出力例
--
17:00:01 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
17:05:01 0 13 100 3 11 74 0 0
17:10:00 0 17 100 4 15 76 0 0
17:15:00 0 110 100 8 79 90 0 0
--
項目説明
--
bread/s :ディスクからシステムバッファへの物理ブロックの読み込み平均回数/秒
lread/s :システムバッファからの読み込みの平均回数/秒
%rcache :システムバッファから読み込むことができた読み出し動作の割合
bwrit/s :システムバッファからディスクへの物理ブロックの書き込み平均回数/秒
lwrit/s :システムバッファへの書き込みの平均回数/秒
%wcache :システムバッファへ書き込むことができた書き込み動作の割合
pread/s :ディスクから raw デバイス経由で物理ブロックを読み込む平均回数/秒
pwrite/s :ディスクへの raw デバイス経由で物理ブロックを書き込む平均回数/秒
--
評価
--
%rcache ≦ 90 or %wcache ≦ 65 → システムバッファ不足
--

5.sar -w の出力(スワッピングとプロセススイッチ)

--
出力例
--
17:00:01 swpin/s bswin/s swpot/s bswot/s pswch/s
17:05:01 0.00 0.0 0.00 0.0 702
17:10:00 0.00 0.0 0.00 0.0 709
17:15:00 0.00 0.0 0.00 0.0 752
--
項目説明
--
swpin/s :スワップインの回数/秒
bswin/s :スワップインのために転送されたブロック数/秒
swpot/s :スワップアウトの回数/秒
bswot/s :スワップアウトのためにページ転送されたブロック数/秒
pswch/s :プロセススイッチ回数/秒
--
評価
--
swpot/s > 1.0 → メモリ不足
--

6.sar -c の出力(システムコール発行状況)

--
出力例
--
17:00:01 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s
17:05:01 939 55 39 0.42 0.49 70915 15946
17:10:00 980 41 34 0.26 0.11 47033 48302
17:15:00 1102 44 40 0.29 0.13 81669 301669
--
項目説明
--
scall/s :発行された全システムコール数/秒
sread/s :read システムコール発行回数/秒
swrit/s :write システムコール発行回数/秒
fork/s :fork システムコール発行回数/秒
exec/s :exec システムコール発行回数/秒
rchar/s :read システムコールが転送した文字数(バイト数)/秒
wchar/s :write システムコールが転送した文字数(バイト数)/秒
--
評価
--
一貫して exec/s > fork/s × 3 → 環境変数PATHの内容が効率的でない
1回の読み書き転送バイト < 8Kバイト → システムコール発行のためのオーバヘッドが大きくなる
--

7.sar -a の出力(ファイルアクセス)

--
出力例
--
17:00:01 iget/s namei/s dirbk/s
17:05:01 0 37 24
17:10:00 2 75 28
17:15:00 5 140 48
--
項目説明
--
iget/s :iノード獲得ルーチンを呼び出した回数/秒
namei/s :ファイルシステムパス検索回数/回数
dirbk/s :UFSディレクトリ・ブロック読み込み回数/秒
--
評価
--
iget/s, namei/s, dirbk/s の値が大きい → ディスク依存度が高い
--

8.sar -y の出力(端末装置の動作状況)

--
出力例
--
17:00:01 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s
17:05:01 2 0 30 0 0 0
17:10:00 0 0 9 0 0 0
17:15:00 0 0 0 0 0 0
--
項目説明
--
rawch/s :入力文字数(raw待ち行列)/秒
canch/s :標準待ち行列で処理される文字数/秒
outch/s :出力文字数(出力待ち行列)/秒
rcvin/s :受信側のI/O割り込みの平均回数/秒
xmtin/s :送信側のI/O割り込みの平均数/秒
mdmin/s :モデム割り込みの平均回数/秒
--
評価
--
rawch/s と canch/s の値が outch/s に比べて大きい → 端末回線にノイズがある可能性がある
mdmin/s != 0 → モデムの故障の可能性あり
rcvin/s ≧ rawch/s + canch/s 又は xmtin/s ≧ outch/s → 端末回線の品質が低下している
--

9.sar -v の出力(システム内制御表の使用状況)

--
出力例
--
17:00:01 proc-sz ov inod-sz ov file-sz ov lock-sz
17:05:01 126/11994 0 47682/51292 0 476/476 0 0/0
17:10:00 123/11994 0 47795/51292 0 478/478 0 0/0
17:15:00 133/11994 0 49063/51292 0 494/494 0 0/0
--
項目説明
--
proc-sz :プロセステーブルの使用数/割り当て数
ov :プロセステーブルのオーバーフロー発生回数
inod-sz :ファイルシステム用iノードテーブルの使用数/割り当て数
ov :ファイルシステム用iノードテーブルのオーバフロー発生回数
file-sz :ファイルテーブルの使用数/割り当て数
ov :ファイルテーブルのオーバフロー発生回数
lock-sz :現在カーネルで使用している共用メモリレコードテーブルの使用数/割り当て数
--
評価
--
各ov > 0 → 各テーブルでオーバフロー発生
--

10.sar -m の出力(メッセージキュー、セマフォ状況)

--
出力例
--
17:00:01 msg/s sema/s
17:05:01 0.00 0.33
17:10:00 0.00 0.54
17:15:00 0.00 0.65
--
項目説明
--
msg/s :メッセージ関連システムコールの処理数/秒
sema/s :セマフォ関連システムコールの処理数/秒
--
評価
--
特になし
--

11.sar -p の出力(ページインの状態)

--
出力例
--
17:00:01 atch/s pgin/s ppgin/s pflt/s vflt/s slock/s
17:05:01 0.08 0.74 0.79 54.68 95.92 0.00
17:10:00 0.08 0.05 0.05 48.94 87.01 0.00
17:15:00 0.15 5.32 15.02 45.46 94.24 0.00
--
項目説明
--
atch/s :メモリ内のページを再要求することで解消されるページフォルト数/秒
pgin/s :ページインされた平均ページ数/秒
ppgin/s :ページイン要求の平均数/秒
pflt/s :保護エラーから引き起こされるページフォルト数/秒
vflt/s :アドレス変換ページフォルト数/秒
slock/s :物理I/Oを要求するソフトウェアロックによるフォルト数/秒
--
評価
--
vflt/s > 50 → メモリ不足、またはメモリiノード不足の可能性あり
--

12.sar -g の出力(ページアウトの状態)

--
出力例
--
17:00:01 pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
17:05:01 0.01 0.01 0.01 0.00 0.00
17:10:00 0.04 0.04 0.03 0.00 0.00
17:15:00 4.19 11.57 15.65 5.98 0.00
--
項目説明
--
pgout/s :システムが受け取ったページアウトの平均要求数/秒
ppgout/s :ページアウトされた平均ページ数/秒
pgfree/s :ページデーモンによってフリーリストに追加された平均論理ページ数/秒
pgscan/s :ページデーモンによってスキャンされた平均ページ数/秒
%ufs_ipf :メモリ上の空きページからiノードを獲得した割合
--
評価
--
pgscan/s > 5 → メモリ不足の可能性あり
--

13.sar -r の出力(メモリの空き情報)

--
出力例
--
17:00:01 freemem freeswap
17:05:01 4844 1383504
17:10:00 7341 1344554
17:15:00 2787 1303060
--
項目説明
--
freemem :ユーザプロセスが使用できるページの平均数(4Kバイト/ページ)
freeswap :プロセススワップに利用できるディスクブロック数(512バイト/ブロック)
--
評価
--
freemem の値が小さい → メモリ不足の可能性あり
--

14.sar -k の出力(カーネルメモリアロケーション状況)

--
出力例
--
17:00:01 sml_mem alloc fail lg_mem alloc fail ovsz_alloc fail
17:05:01 12582912 5593688 0 45219840 36418844 0 9297920 0
17:10:00 12582912 5574876 0 45195264 36453612 0 9199616 0
17:15:00 12566528 5119124 0 44908544 36901384 0 9396224 0
--
項目説明
--
sml_mem :小メモリ要求プールの中に持っている利用可能なメモリ量
alloc :小メモリ要求プールから割り当てられているメモリ量
fail :小メモリ要求の割り当てに失敗した数
lg_mem :大メモリ要求プールの中に持っている利用可能なメモリ量
alloc :大メモリ要求プールから割り当てられるメモリ量
fail :大メモリ要求の割り当てに失敗した数
ovsz_alloc :サイズ超過要求に割り当てられたメモリ量
fail :サイズ超過要求の割り当てに失敗した数
--
評価
--
alloc が時間とともに増加する → メモリ返却漏れ、または障害の可能性あり
--

以上
 
表 24?21 sar コマンドのオプション オプション
動作
 
-a ファイルアクセス操作をチェックする
-b バッファー動作をチェックする
-c システムコールをチェックする
-d 各ブロックデバイスの動作をチェックする
-g ページアウトとメモリーの解放をチェックする
-k カーネルメモリーの割り当てをチェックする
-m プロセス間通信をチェックする
-p スワップとディスパッチ動作をチェックする
-q 待ち行列動作をチェックする
-r 未使用メモリーをチェックする
-u CPU の使用率をチェックする
-nv システムテーブルの状態をチェックする
-w ボリュームのスワッピングと切り替えをチェックする
-y 端末動作をチェックする
-A システム全体のパフォーマンスをリポートする (すべてのオプションを入力した場合と同じです)

オプションを使用しなければ、-u オプションを指定してコマンドを呼び出すのと同じです。

 

PR
ブログ内検索
Counter


カレンダー
02 2025/03 04
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
忍者ブログ [PR]