LoginSignup
1
1

More than 3 years have passed since last update.

Netflixのパフォーマンスエンジニアも使っているsarコマンドについてまとめた

Posted at

上記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
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1