上記Tweetで紹介されていた内で、sarコマンドに馴染みがなかったので少し調査してみました。
sarコマンドとは
sar(System Activity Reporter)はLinuxのモニタリングツールの1つです。
メモリ、CPU使用率、ディスクIO、ネットワーク、ロードアベレージ等の統計情報を表示するコマンドで、sysstatパッケージに含まれています。
リアルタイムの統計情報だけでなく、過去の統計情報を表示することが可能で、
過去にさかのぼって情報を見ることができるため、障害対応時の原因調査に役立ちます。
表示する統計情報の種類は、オプションで指定します。
基本的な使い方
オプション
sar [...options]
[...options]に、どのリソースの情報を表示するか指定します。
オプションを指定しない場合、当日のリソース情報が取得されます。
情報取得間隔は、デフォルトは10分です。
過去データの保存先
Amazon Linux 2だと、/var/log/sa 配下に過去データが保存されていきます。
[ec2-user@xxx ~]$ ls -la /var/log/sa
合計 2652
drwxr-xr-x 2 root root 167 5月 24 05:14 .
drwxr-xr-x 8 root root 4096 5月 24 05:14 ..
-rw-r--r-- 1 root root 91760 10月 12 2019 sa12
-rw-r--r-- 1 root root 336992 10月 13 2019 sa13
-rw-r--r-- 1 root root 336992 10月 14 2019 sa14
-rw-r--r-- 1 root root 238880 10月 15 2019 sa15
-rw-r--r-- 1 root root 290320 10月 17 2019 sa17
-rw-r--r-- 1 root root 336992 10月 18 2019 sa18
-rw-r--r-- 1 root root 16960 10月 19 2019 sa19
-rw-r--r-- 1 root root 5328 5月 24 05:30 sa24
-rw-r--r-- 1 root root 68488 10月 12 2019 sar12
-rw-r--r-- 1 root root 249044 10月 13 2019 sar13
-rw-r--r-- 1 root root 249044 10月 14 2019 sar14
-rw-r--r-- 1 root root 214675 10月 17 2019 sar17
-rw-r--r-- 1 root root 249044 10月 18 2019 sar18
sar**のあとの数字は、直近何日分かを表しています。
ファイル自体はバイナリで保存されていますが、
sar経由でファイルの中身を表示できます。
[ec2-user@xxx ~]$ sar -r -f /var/log/sa/sa12
Linux 4.14.123-111.109.amzn2.x86_64 (localhost) 2019年10月12日 _x86_64_ (1 CPU)
17時23分29秒 LINUX RESTART
17時30分01秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
17時40分01秒 493536 513796 51.01 2088 390136 593996 58.97 166828 253464 252
17時50分01秒 493540 513792 51.01 2088 390300 593996 58.97 166892 253532 252
18時00分01秒 493004 514328 51.06 2088 390636 593988 58.97 167000 253844 216
リアルタイムの情報を、特定間隔に絞って表示する場合
コマンドのあと[取得間隔] [取得回数]でリアルタイムで表示するデータを制限できます。
1秒おきに3回情報を習得する場合は、下記の通りです。
[ec2-user@xxx ~]$ sar -r 1 3
Linux 4.14.146-119.123.amzn2.x86_64 2020年05月24日 _x86_64_ (1 CPU)
05時37分41秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
05時37分42秒 585824 421468 41.84 2088 323892 531260 52.74 154588 198628 128
05時37分43秒 584948 422344 41.93 2088 323892 531260 52.74 155608 198628 128
05時37分44秒 584568 422724 41.97 2088 323892 531260 52.74 155884 198628 128
平均値: 585113 422179 41.91 2088 323892 531260 52.74 155360 198628 128
統計情報を別ファイルに保存する
## memというファイルにメモリのリアルタイム情報を1秒間隔で3回保存する
[ec2-user@xxx ~]$ sar -r 1 3 -o mem
## memファイルに保存した統計情報を表示する
[ec2-user@xxx ~]$ sar -r -f mem
表示するリソースを指定する
オプションを変えることで、表示するリソースを指定できる
- CPU使用率
[ec2-user@xxx ~]$ sar -P ALL 1
Linux 4.14.146-119.123.amzn2.x86_64 2020年05月24日 _x86_64_ (1 CPU)
05時39分43秒 CPU %user %nice %system %iowait %steal %idle
05時39分44秒 all 0.00 0.00 0.00 0.00 0.00 100.00
05時39分44秒 0 0.00 0.00 0.00 0.00 0.00 100.00
- メモリ使用率
[ec2-user@xxx ~]$ sar -r 1
Linux 4.14.146-119.123.amzn2.x86_64 2020年05月24日 _x86_64_ (1 CPU)
05時41分24秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
05時41分25秒 586180 421112 41.81 2088 323940 526944 52.31 154808 198444 0
05時41分26秒 586180 421112 41.81 2088 323940 526944 52.31 154808 198444 0
05時41分27秒 586180 421112 41.81 2088 323940 526944 52.31 154808 198444 0
- ネットワーク
[ec2-user@xxx ~]$ sar -n DEV 1
Linux 4.14.146-119.123.amzn2.x86_64 (ip-172-31-63-105.ap-northeast-1.compute.internal) 2020年05月24日 _x86_64_ (1 CPU)
05時42分33秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
05時42分34秒 eth0 2.00 0.00 0.10 0.00 0.00 0.00 0.00
05時42分34秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05時42分34秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
05時42分35秒 eth0 1.01 1.01 0.05 0.39 0.00 0.00 0.00
05時42分35秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00