sarコマンドの使い方

最新記事は以下に記載しています。
https://hana-shin.hatenablog.com/entry/2022/04/20/170519

#1 検証環境
検証環境はゲストマシン、OSはCentOS7.2です。CPUは4つあります。

```console:CentOS版数
[root@master sar]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
```

```console:搭載CPU数
[root@master sar]# cat /proc/cpuinfo |grep processor
processor       : 0
processor       : 1
processor       : 2
processor       : 3
```


#2 インストール方法

```console:パッケージのインストール
[root@master sar]# yum -y install sysstat
-以下、略-
```

```console:版数
[root@master sar]# rpm -qa|grep sysstat
sysstat-10.1.5-7.el7.x86_64
```



#3 起動方法
OS起動時に、sysstatが自動的に起動するようにします。

```cosole:自動起動の設定
[root@admin ~]# systemctl enable sysstat
Created symlink from /etc/systemd/system/multi-user.target.wants/sysstat.service to /usr/lib/systemd/system/sysstat.service.
```

sysstatを起動します。

```console:sysstatの起動
[root@admin ~]# systemctl start sysstat
```

sysstatの状態を確認します。sysstatが正常に起動したことがわかります。

```consoel:状態確認
[root@admin ~]# systemctl status sysstat
● sysstat.service - Resets System Activity Logs
   Loaded: loaded (/usr/lib/systemd/system/sysstat.service; enabled; vendor preset: enabled)
   Active: active (exited) since 月 2017-08-07 19:31:14 JST; 6s ago
  Process: 915 ExecStart=/usr/lib64/sa/sa1 --boot (code=exited, status=0/SUCCESS)
 Main PID: 915 (code=exited, status=0/SUCCESS)

 8月 07 19:31:13 admin systemd[1]: Starting Resets System Activity Logs...
 8月 07 19:31:14 admin systemd[1]: Started Resets System Activity Logs.
```


#4 データの採取方法
##4.1 書式

sar -o <ファイル名> ＜採取間隔(秒)> <採取回数>


##4.2 実行例
以下は、採取間隔2秒です。Ctrl+C押下で終了します。

```
[root@master sar]# sar -o sar.data 2
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月18日  _x86_64_        (4 CPU)

19時42分43秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
19時42分45秒     all      0.13      0.00      1.15      0.00      0.00     98.72
19時42分47秒     all      2.30      0.00      1.28      0.00      0.00     96.42
19時42分49秒     all      3.50      0.00      5.31      0.13      0.00     91.06
^C

19時42分49秒     all      0.74      0.00      2.96      0.00      0.00     96.30
平均値:      all      1.90      0.00      2.59      0.04      0.00     95.47

採取したデータを確認する。
[root@master sar]# ls -l sar.data
-rw-r--r-- 1 root root 542348  2月 18 19:42 sar.data

```


#5 採取データの見方


##5.1 CPU
###5.1.1 全てのCPUの状況を見る(-P ALL)
```
[root@master sar]# sar -P ALL -f sar.data
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月18日  _x86_64_        (4 CPU)

19時48分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
19時48分03秒     all      3.40      0.00      3.81      0.14      0.00     92.65
19時48分03秒       0      0.51      0.00      2.02      0.00      0.00     97.47
19時48分03秒       1      1.16      0.00      7.56      0.00      0.00     91.28
19時48分03秒       2      1.09      0.00      1.09      0.00      0.00     97.81
19時48分03秒       3     11.17      0.00      4.47      0.00      0.00     84.36

19時48分03秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
19時48分05秒     all      0.25      0.00      0.63      0.25      0.00     98.86
19時48分05秒       0      0.00      0.00      0.51      0.00      0.00     99.49
19時48分05秒       1      0.51      0.00      1.01      1.01      0.00     97.47
19時48分05秒       2      0.51      0.00      0.51      0.00      0.00     98.98
19時48分05秒       3      0.50      0.00      0.50      0.00      0.00     98.99
-以下、略-

```
###5.1.2 特定のCPUの状況を見る(-P `<CPU番号`>)

```
[root@master sar]# sar -P 0 -f sar.data
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月18日  _x86_64_        (4 CPU)

19時48分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
19時48分03秒       0      0.51      0.00      2.02      0.00      0.00     97.47
19時48分05秒       0      0.00      0.00      0.51      0.00      0.00     99.49
19時48分07秒       0      0.00      0.00      2.58      0.00      0.00     97.42
19時48分09秒       0      0.54      0.00      4.89      0.00      0.00     94.57
19時48分11秒       0      0.00      0.00      3.17      0.53      0.00     96.30
19時48分13秒       0      0.53      0.00      7.89      0.00      0.00     91.58
19時48分15秒       0      0.52      0.00      4.64      0.00      0.00     94.85

19時48分15秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
19時48分17秒       0      0.57      0.00      0.57      0.00      0.00     98.86
19時48分19秒       0      5.73      0.00      3.12      0.00      0.00     91.15
19時48分21秒       0      0.51      0.00      1.01      0.00      0.00     98.48
19時48分23秒       0      0.52      0.00      9.79      0.00      0.00     89.69
19時48分25秒       0      5.76      0.00      3.14      0.00      0.00     91.10
19時48分27秒       0      0.57      0.00      1.70      0.00      0.00     97.73
19時48分29秒       0      6.09      0.00      1.52      0.00      0.00     92.39
-以下、略-
```


##5.2 メモリ
###5.2.1 メモリ使用量(-r)

```
[root@master sar]# sar -r -f sar.data
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月18日  _x86_64_        (4 CPU)

19時48分01秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
19時48分03秒    321436    679928     67.90      1788    323936    802388     52.59    284436    247568       928
19時48分05秒    321424    679940     67.90      1788    323960    802388     52.59    288552    247568       948
19時48分07秒    321424    679940     67.90      1788    323984    802388     52.59    288560    247580       972
19時48分09秒    323348    678016     67.71      1788    324004    802388     52.59    288576    247604        96
19時48分11秒    323224    678140     67.72      1788    324024    802388     52.59    288584    247616       116
19時48分13秒    322864    678500     67.76      1788    324044    802388     52.59    288568    247616      1032
19時48分15秒    322960    678404     67.75      1788    324076    802388     52.59    288612    247628      1056
-以下、略-
```


###5.2.2 メモリページ(-R)

```
[root@master sar]# sar -R -f sar.data
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月18日  _x86_64_        (4 CPU)

19時48分01秒   frmpg/s   bufpg/s   campg/s
19時48分03秒   -206.47      0.00      3.48
19時48分05秒     -1.50      0.00      3.00
19時48分07秒      0.00      0.00      3.00
19時48分09秒    240.50      0.00      2.50
19時48分11秒    -15.50      0.00      2.50
19時48分13秒    -45.00      0.00      2.50
19時48分15秒     12.00      0.00      4.00
-以下、略-
```



##5.3 ディスク

```
[root@master sar]# sar -d -f sar.data
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月18日  _x86_64_        (4 CPU)

19時48分01秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
19時48分03秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時48分03秒    dev8-0     10.95      0.00    116.42     10.64      0.08      6.41      2.32      2.54
19時48分03秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時48分05秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時48分05秒    dev8-0      5.50      0.00     27.00      4.91      0.05      9.91      8.82      4.85
19時48分05秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
-以下、略-
```




##5.4 ネットワーク

sar -n `<keyword`> -f `<ファイル名`>
keywordには、以下のものがある。man より抜粋
>DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, EICMP6 and UDP6


###5.4.1 インタフェース

```
[root@master sar]# sar -n DEV -f sar.data
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月18日  _x86_64_        (4 CPU)

19時48分01秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
19時48分03秒      eth0      0.50      0.50      0.03      0.10      0.00      0.00      0.00
19時48分03秒        lo     54.23     54.23     24.69     24.69      0.00      0.00      0.00
19時48分03秒   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時48分05秒      eth0      0.50      0.50      0.03      0.15      0.00      0.00      0.00
19時48分05秒        lo     16.00     16.00      0.98      0.98      0.00      0.00      0.00
19時48分05秒   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
-以下、略-
```



###5.4.2 IP

```
[root@master sar]# sar -n IP -f sar.data
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月18日  _x86_64_        (4 CPU)

19時48分01秒    irec/s  fwddgm/s    idel/s     orq/s   asmrq/s   asmok/s  fragok/s fragcrt/s
19時48分03秒     54.73      0.00     54.73     54.23      0.00      0.00      0.00      0.00
19時48分05秒     16.50      0.00     16.50     16.50      0.00      0.00      0.00      0.00
19時48分07秒     11.00      0.00     11.00     11.00      0.00      0.00      0.00      0.00
19時48分09秒      5.50      0.00      5.50      5.50      0.00      0.00      0.00      0.00
19時48分11秒     12.00      0.00     12.00     12.00      0.00      0.00      0.00      0.00
19時48分13秒     18.00      0.00     17.50     18.00      0.00      0.00      0.00      0.00
19時48分15秒     26.50      0.00     27.00     26.50      0.00      0.00      0.00      0.00
-以下、略-
```


###5.4.3 TCP

```
[root@master sar]# sar -n TCP -f sar.data
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月18日  _x86_64_        (4 CPU)

19時48分01秒  active/s passive/s    iseg/s    oseg/s
19時48分03秒      0.00      0.00     54.73     54.23
19時48分05秒      0.00      0.00     16.50     16.50
19時48分07秒      0.00      0.00     11.00     11.00
19時48分09秒      0.00      0.00      5.50      5.50
19時48分11秒      0.00      0.00     12.00     12.00
19時48分13秒      0.00      0.00     18.00     18.00
19時48分15秒      0.00      0.00     26.00     26.00
```


#6 表示時刻の絞り込み(-s,-e)
20:00:00から20:40:00までのソケットの情報表示する。

```
[root@master ~]# sar -n SOCK -s 20:00:00 -e 20:40:00 -f /var/log/sa/sa16
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月16日  _x86_64_        (4 CPU)

20時00分01秒    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
20時10分02秒       783        93         2         0         0         6
20時20分01秒       782        93         2         0         0         7
20時30分01秒       793       103         2         0         0         4
平均値:        786        96         2         0         0         6
[root@master ~]#
```



#7 Excelによる可視化
可視化のための専用ツール(kSar)がありますが、動かないので、Excelによる可視化を試しました。

##7.1 メモリ
###7.1.1 Linux上の作業

```
テスト用データの採取を行う。
[root@master sar]# sar -o sar.data 2
-以下、略-

stressを使ってメモリ負荷をかける。プロセス(256M消費)を4個起動する。
[root@master sar]# stress -m 1 -q &
[1] 11947
[root@master sar]# stress -m 1 -q &
[2] 11952
[root@master sar]# stress -m 1 -q &
[3] 11969
[root@master sar]# stress -m 1 -q &
[4] 11973

実行しているジョブを確認する。
[root@master sar]# jobs
[1]   実行中               stress -m 1 -q &
[2]   実行中               stress -m 1 -q &
[3]-  実行中               stress -m 1 -q &
[4]+  実行中               stress -m 1 -q &

採取したデータを確認する。
[root@master sar]# ls -l sar.data
-rw-r--r-- 1 root root 910500  2月 18 20:39 sar.data

採取したデータをテキストに変換する。
[root@master sar]# sar -r -f sar.data > mem.txt

```
mem.txtをエディタ(vi等)で編集する。以下は編集前のmem.txt
![memory1.png](https://qiita-image-store.s3.amazonaws.com/0/146813/41fe4f10-f797-56bc-6529-27896a6b8523.png)


先頭2行を削除。その後、1行目の左端を"TIME"に編集（"TIME"でなくても、他の単語でもOK）
![memory2.png](https://qiita-image-store.s3.amazonaws.com/0/146813/342aadd9-2b37-b14d-95f2-d00e9dde5501.png)

最後の1行（赤枠で囲まれた部分）も削除する。
![memory1.png](https://qiita-image-store.s3.amazonaws.com/0/146813/5afc90ab-7626-754e-a7e2-b41bf4e35b12.png)



###7.1.2 PC上の作業
Excelで「ファイル」->「開く」より、mem.txtを開く。
![memory1.png](https://qiita-image-store.s3.amazonaws.com/0/146813/9abde715-53aa-3620-9cb9-866419e797f4.png)


折れ線グラフを選択する。
![memory3.png](https://qiita-image-store.s3.amazonaws.com/0/146813/1e4bb590-460e-746a-4138-18091f7dbf7f.png)


stressでメモリ負荷をかけたタイミングが4回あることがわかる（一番上の線）。
![memory2.png](https://qiita-image-store.s3.amazonaws.com/0/146813/f118c42d-1294-73c1-5955-d87baf992331.png)

##7.2 CPU

###7.2.1 Linux上の作業

```
テスト用データの採取を行う。
[root@master sar]# sar -o sar.data 2
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月18日  _x86_64_        (4 CPU)

21時53分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
21時53分03秒     all      1.06      0.00      3.43      0.13      0.00     95.38
21時53分05秒     all      0.17      0.00      0.52      0.17      0.00     99.14

stressを使ってCPU負荷をかける
[root@master sar]# date;stress -c 1 -q &
2017年  2月 18日 土曜日 21:53:13 JST
[1] 15564
[root@master sar]# date;stress -c 1 -q &
2017年  2月 18日 土曜日 21:53:22 JST
[2] 15570
[root@master sar]# date;stress -c 1 -q &
2017年  2月 18日 土曜日 21:53:34 JST
[3] 15590

実行しているジョブを確認する。
[root@master sar]# jobs
[1]   実行中               stress -c 1 -q &
[2]-  実行中               stress -c 1 -q &
[3]+  実行中               stress -c 1 -q &

ジョブを終了する。
[root@master sar]# kill %1
[root@master sar]# kill %2
[1]   Terminated              stress -c 1 -q
[2]-  Terminated              stress -c 1 -q
[root@master sar]# kill %3
[root@master sar]# jobs
[3]+  Terminated              stress -c 1 -q
[root@master sar]# jobs
[root@master sar]#
```


###7.2.2 PC上の作業
stressでCPU負荷をかけたタイミングが3回あることがわかる（青い線）。
![cpu.png](https://qiita-image-store.s3.amazonaws.com/0/146813/8d4a0a93-4226-0acf-3f2e-cf16fc8e503a.png)



#8 Docker
##8.1 HDDアクセス時の状況

```
初期状態を確認する。
[root@master ~]# sar -d 2 1
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月19日  _x86_64_        (4 CPU)

10時12分01秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10時12分03秒    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時12分03秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時12分03秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
-以下、略-

別ターミナルを開いて、コンテナを起動する。
[root@master ~]# docker run -it --rm centos:centos7 bash
[root@815f4045d19e /]#

sarを実行する。起動したコンテナがdev253-1(★印)を使っていることがわかる。
[root@master ~]# sar -d 2 1
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月19日  _x86_64_        (4 CPU)

10時14分18秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10時14分20秒    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時14分20秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時14分20秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時14分20秒★dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

別ターミナルを開いて、もう1つコンテナを起動する。この時点で合計2個のコンテナが起動している。
[root@master ~]# docker run -it --rm centos:centos7 bash
[root@9151d7f2ee67 /]#

sarを実行する。起動したコンテナがdev253-2(★印)を使っていることがわかる。
[root@master ~]# sar -d 2 1
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月19日  _x86_64_        (4 CPU)

10時16分34秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10時16分36秒    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時16分36秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時16分36秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時16分36秒  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時16分36秒★dev253-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

別ターミナルを開いて、もう1つコンテナを起動する。この時点で合計3個のコンテナが起動している。
[root@master ~]# docker run -it --rm centos:centos7 bash
[root@290d8edad07b /]#

sarを実行する。起動したコンテナがdev253-3(★印)を使っていることがわかる。
[root@master ~]# sar -d 2 1
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月19日  _x86_64_        (4 CPU)

10時17分37秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10時17分39秒    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時17分39秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時17分39秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時17分39秒  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時17分39秒  dev253-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時17分39秒★dev253-3      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

コンテナを全て(3個)終了する。3つのデバイス(dev253-1,dev253-2,dev253-3)が使われなくなったことがわかる。
[root@master ~]# sar -d 2 1
Linux 3.10.0-327.el7.x86_64 (master)    2017年02月19日  _x86_64_        (4 CPU)

10時18分28秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10時18分30秒    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時18分30秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10時18分30秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
-以下、略-

[root@master stress]# docker inspect $(docker ps -q --no-trunc)|grep DeviceName
                "DeviceName": "docker-8:3-136190409-1681a6f10fd41edbd7816b76fe02b497cb7c4569f2e65a37cce915b411d00df7",
                "DeviceName": "docker-8:3-136190409-a351a01c174f30dd0c6c36914a11a6750a48e94ef231a38b9ded78800bfed85b",

```

#X 参考情報
http://d.hatena.ne.jp/japanrock_pg/20090415/1239795768