sar コマンド
- sar コマンドは、sysstat が定期的 (10分おき) に取得しているシステム情報を表示するコマンド
- 取得したシステム情報は /var/log/sysstat に格納されている
- sa{日付} には sar コマンドから読めるバイナリ形式でシステム情報が格納されている
- sar{日付} には、テキストでシステム情報が格納されている (sarコマンドによる絞り込みなどはできない)
$ ls /var/log/sysstat/
sa09 sa10 sa11 sa12 sa13 sa14 sa15 sa16 sa17 sar08 sar09 sar10 sar11 sar12 sar13 sar14 sar15 sar16
- コマンド引数 -f で sa ファイルの内容を出力する。-f を省略すると今日の sa ファイルの内容が出力される
- -p で読みやすいように整形 (--prettier) だけど、あんまり見やすくならない
sar, sar -P {cpu番号|all} CPU時間の情報
ubuntu@www4250uj:~/docker$ sar
Linux 6.8.0-35-generic (www4250uj) 06/17/24 _x86_64_ (3 CPU)
00:00:00 CPU %user %nice %system %iowait %steal %idle
00:10:00 all 1.59 0.00 0.99 0.29 0.03 97.10
00:20:00 all 1.50 0.00 1.01 0.21 0.01 97.27
Average: all 1.55 0.00 1.00 0.25 0.02 97.19
列 | 説明 |
---|
%user | CPUがユーザモードにあった割合 |
%nice | 優先度の高い(nice値が昇格した)プロセスの実行時間の割合 |
%system | CPUがカーネルモードにあった時間の割合 |
%iowait | CPUがIO待ちをしていた時間の割合 |
%steal | この仮想マシンが実行依頼したが、別の仮想マシンの処理待ちになっていた時間の割合 |
%idle | CPUがアイドル状態にあった時間の割合 |
sar -r メモリの情報
buntu@www4250uj:~/docker$ sar -r
Linux 6.8.0-35-generic (www4250uj) 06/17/24 _x86_64_ (3 CPU)
00:00:00 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
00:10:00 97512 372864 1242256 61.66 24028 528188 5552012 66.84 685944 344532 1040
00:20:00 111396 370168 1245032 61.79 24576 511068 5501784 66.24 649008 374212 1160
00:30:00 103648 354080 1261388 62.61 24168 503160 5498644 66.20 646652 375424 120
Average: 104185 365704 1249559 62.02 24257 514139 5517480 66.43 660535 364723 773
列 | 説明 |
---|
kbmemfree | 空き (KB) |
kbavail | 利用可能 |
%memused | 空き容量の割合 |
kbbuffers | バッファ (KB) |
kbcached | キャッシュ (KB) |
kbcommit | OSが確保している領域(KB) |
kbactive | 利用中(KB) |
kbinact | 利用中でない(KB) |
kbdirty | ディスクに書き戻されるのを待っている(KB) |
sar -q CPUキューの情報
ubuntu@www4250uj:~/docker$ sar -q
Linux 6.8.0-35-generic (www4250uj) 06/17/24 _x86_64_ (3 CPU)
00:00:00 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
00:10:00 0 723 0.01 0.03 0.00 0
00:20:00 3 717 0.09 0.07 0.02 1
00:30:00 0 714 0.17 0.07 0.01 0
Average: 1 718 0.09 0.06 0.01 0
列 | 説明 |
---|
runq-sz | 実行待ち |
plist-sz | 実行中 |
ldavg-1 | 1分間平均負荷(load averatge) |
ldavg-5 | 5分間平均負荷(load averatge) |
ldavg-15 | 15分間平均負荷(load averatge) |
blocked | IO待ち |
- load average は1CPUに対して、平均的にどれだけプロセスが実行待ちになっているかを示す値
- runq-sz や blockd が多くなったら計算機資源が足りない
sar -S, sar-W スワップの情報
ubuntu@www4250uj:~/docker$ sar -S
Linux 6.8.0-35-generic (www4250uj) 06/17/24 _x86_64_ (3 CPU)
00:00:00 kbswpfree kbswpused %swpused kbswpcad %swpcad
00:10:00 5673212 618240 9.83 60504 9.79
00:20:00 5674492 616960 9.81 63864 10.35
00:30:00 5674748 616704 9.80 65212 10.57
00:40:00 5659132 632320 10.05 70256 11.11
Average: 5670396 621056 9.87 64959 10.46
ubuntu@www4250uj:~/docker$ sar -W
Linux 6.8.0-35-generic (www4250uj) 06/17/24 _x86_64_ (3 CPU)
00:00:00 pswpin/s pswpout/s
00:10:00 14.49 17.50
00:20:00 1.86 0.00
00:30:00 0.88 0.38
00:40:00 2.00 8.71
Average: 4.81 6.65
列 | 説明 |
---|
kbswpfree | スワップ領域の空き容量(KB) |
kbswpused | スワップ領域の利用容量(KB) |
%swpused | スワップ領域の利用割合 |
kbswpcad | スワップ領域のキャッシュとして確保しているメモリ容量(KB) |
%swpcad | スワップ領域のキャッシュの割合 |
pswpin/s | 1秒間あたりのスワップインされたページ数 |
pswpout/s | 1秒間あたりのスワップアウトされたページ数 |
sar -d Disk IO の情報
ubuntu@www4250uj:~/docker$ sar -d
Linux 6.8.0-35-generic (www4250uj) 06/17/24 _x86_64_ (3 CPU)
00:00:00 DEV tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util
00:10:00 vda 27.24 323.59 144.09 0.00 17.17 0.07 2.38 1.08
00:20:00 vda 12.66 94.17 63.92 0.00 12.49 0.04 3.21 0.77
00:30:00 vda 11.97 60.06 70.80 0.00 10.93 0.02 1.89 0.62
00:40:00 vda 14.74 165.40 105.05 0.00 18.34 0.02 1.47 0.72
00:50:00 vda 13.14 55.93 87.49 0.00 10.91 0.05 3.99 0.83
01:00:00 vda 16.03 149.52 106.64 0.00 15.98 0.16 10.03 0.87
01:10:00 vda 25.02 262.20 126.11 0.00 15.52 0.07 2.62 0.88
01:20:00 vda 16.55 141.36 99.18 0.00 14.53 0.07 4.49 0.73
01:30:00 vda 18.79 126.98 77.53 0.00 10.89 0.08 4.18 0.73
列 | 説明 |
---|
tps | 1秒間あたりのI/O転送回数 |
rkB/s | 読み込み KB/s |
wkB/s | 書き込み KB/s |
dkB/s | 失敗 KB/s |
areq-sz | 平均サイズ (セクタ単位) |
aqu-sz | 平均キュー長 (セクタ単位) |
await | 待ち時間 |
%util | 利用率 |
DEV | デバイス |
sar -n {keyword} ネットワークの情報
- keyword : DEV, EDEV, FC, ICMP, EICMP, ICMP6, EICMP6, IP, EIP, IP6, EIP6, NFS, NFSD, SOCK, SOCK6, SOFT, TCP, ETCP, UDP and UDP6
ubuntu@www4250uj:~/docker$ sar -n DEV
Linux 6.8.0-35-generic (www4250uj) 06/17/24 _x86_64_ (3 CPU)
00:00:00 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
00:10:00 lo 14.17 14.17 1.38 1.38 0.00 0.00 0.00 0.00
00:10:00 ens3 40.24 16.94 3.90 15.96 0.00 0.00 0.00 0.00
00:10:00 ens4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:10:00 ens5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:10:00 br-13f16c2f099d 9.76 10.78 15.02 1.52 0.00 0.00 0.00 0.00
00:10:00 br-19694a0411e0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:10:00 br-888f98fc1f2c 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:10:00 br-aa68fbfd10e9 0.13 0.18 0.01 0.01 0.00 0.00 0.00 0.00
列 | 説明 |
---|
rxpck/s | 受信パケット/sec |
txpck/s | 送信パケット/sec |
rxkB/s | 送信 KB/sec |
txkB/s | 受信 KB/sec |
- TCP については記録をとっていないので、コマンド実行時に取得する
ubuntu@www4250uj:~/docker$ sar -n TCP 5
Linux 6.8.0-35-generic (www4250uj) 06/17/24 _x86_64_ (3 CPU)
01:07:06 active/s passive/s iseg/s oseg/s
01:07:11 0.00 0.00 14.40 14.60
01:07:16 0.00 0.20 5.20 4.80
01:07:21 0.00 0.00 8.00 8.40
列 | 説明 |
---|
active/s | アクティブな新規接続/sec (OPEN要求する側) |
passive/s | パッシブな新規接続/sec (OPEN要求される側) |
iseg/s | 受信 セグメント/sec |
oseg/s | 送信 セグメント/sec |
sar で今の情報を取得する
- 上記の使い方は、今日の情報 (/var/log/sysstat/sa{今日日付}) を見ている
- 居間の情報を取得する場合には、上記のオプションに取得間隔 (秒) を指定する
sar -f /var/log/sysatat/saNN で過去の情報を取得する
ubuntu@www4250uj:~/docker$ sar -p -f /var/log/sysstat/sa10
Linux 6.8.0-31-generic (www4250uj) 06/10/24 _x86_64_ (3 CPU)
00:00:01 CPU %user %nice %system %iowait %steal %idle
00:10:00 all 2.08 0.00 1.15 0.14 0.02 96.62
00:20:31 all 0.66 0.00 0.38 0.13 0.01 98.82
00:30:10 all 0.57 0.00 0.21 0.07 0.01 99.14
00:40:31 all 1.76 0.00 0.35 0.07 0.00 97.82
00:50:31 all 0.41 0.00 0.19 0.06 0.00 99.34
01:00:11 all 0.40 0.00 0.18 0.14 0.01 99.27
01:10:21 all 0.48 0.00 0.19 0.14 0.01 99.18
sar の情報をグラフにする/JSONにする
ubuntu@www4250uj:~/docker$ sadf -T -g -- -r /var/log/sysstat/sa16 > sa16_memory.svg
コマンドオプション | 説明 |
---|
-T | 時刻をUTFではなくローカル時間にする |
-g | SVG形式で出力する |
-j | JSON形式で出力する |
-x | XML形式で出力する |
-d | CSV形式で出力する |
-- | sar のコマンドオプション |
-s "XX:XX:XX" | 開始時刻 |
-e "XX:XX:XX" | 終了時刻 |
- g でグラフ化にできる
- Elasticsearch にぶち込むときは -j で JSON にするのかな

がっつり分析するとき