テックブログ

技術ネタ

sarコマンドの基本

こんにちは、ネットアシストのynです。

皆様いかがお過ごしでしょうか。
外出を控える日々が続いておりますが、
手洗いうがい等を忘れず自分の身は自分で守っていきたいと思います!

さて今回は最近初めて使用した sar コマンドについて紹介しようと思います。

私自身sarコマンドについてあまり触れておらず、この機会に自分自身の
学習と併せて紹介していきたいと思います!

そもそもsarコマンドとは

CPU、メモリ、ネットワーク、I/Oなどの負荷状況を確認することが出来ます。
負荷状況を確認するには「top」「ps」などのコマンドがあると思いますが、sarコマンドの
大きな特徴としては過去に遡って情報を確認出来ることが可能です。

●sarコマンドのオプション

sar <オプション> [時間間隔] [回数]

-A    全情報表示
-b    ディスクI/Oの使用状況
-u    CPUの使用状況
-r    メモリ、スワップの使用状況
-q    ロードアベレージ

●ディスクI/Oの使用状況確認

-b オプションで確認出来ます。

[root@test ~]# sar -b
Linux 3.10.0-1062.9.1.el7.x86_64  2020年07月23日  _x86_64_        (1 CPU)

00時00分01秒       tps      rtps      wtps   bread/s   bwrtn/s
00時10分01秒      1.16      0.01      1.15      0.16     10.25
00時20分01秒      1.14      0.00      1.14      0.00      9.65
00時30分01秒      1.14      0.00      1.14      0.00      9.67
00時40分01秒      1.12      0.00      1.12      0.00      9.43
00時50分02秒      1.13      0.00      1.13      0.00      9.70
01時00分01秒      1.12      0.00      1.12      0.00      9.53
01時10分01秒      1.33      0.10      1.24      1.58     11.92
01時20分01秒      1.13      0.00      1.13      0.00      9.75
01時30分01秒      1.13      0.00      1.13      0.00      9.67
01時40分01秒      1.13      0.00      1.13      0.00      9.55
01時50分01秒      1.13      0.00      1.13      0.00      9.68
...

項目を簡単に説明します。

tps       :1秒間のI/Oリクエスト数
rtps      :1秒間のディスク読み込みリクエスト数
wtps     :1秒間のディスク書き込みリクエスト数
bread/s :1秒間のディスク読み込みブロック数(IOリクエストのデータ量)
bwrtn/s :1秒間のディスク書き込みブロック数(IOリクエストのデータ量)

●CPU使用率確認

-u オプションで確認出来ます。

[root@test ~]# sar -u
Linux 3.10.0-1062.9.1.el7.x86_64  2020年07月23日  _x86_64_        (1 CPU)

00時00分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
00時10分01秒     all      0.06      0.00      0.09      0.01      0.00     99.85
00時20分01秒     all      0.05      0.00      0.08      0.00      0.00     99.88
00時30分01秒     all      0.05      0.00      0.08      0.00      0.00     99.87
00時40分01秒     all      0.04      0.00      0.08      0.00      0.00     99.88
00時50分02秒     all      0.05      0.00      0.08      0.00      0.00     99.88
01時00分01秒     all      0.05      0.00      0.08      0.00      0.00     99.88
01時10分01秒     all      0.08      0.00      0.15      0.04      0.00     99.73
01時20分01秒     all      0.04      0.00      0.07      0.00      0.00     99.89
01時30分01秒     all      0.04      0.00      0.08      0.00      0.00     99.88
01時40分01秒     all      0.05      0.00      0.08      0.00      0.00     99.87
01時50分01秒     all      0.05      0.00      0.08      0.00      0.00     99.88
02時00分01秒     all      0.04      0.00      0.08      0.00      0.00     99.87
02時10分01秒     all      0.05      0.00      0.08      0.00      0.00     99.87
...

項目はtopコマンドと同様なのでここは割愛します。

●昨日以降の情報を取得したい場合

ファイル名の前に -f を指定することで確認出来ます。

取得された情報は一定期間[「/var/log/sa/」へ保存されており、
sa+日付がついたファイル名で保存されています。

[root@test ~]# sar -u -f /var/log/sa/sa22
Linux 3.10.0-1062.9.1.el7.x86_64  2020年07月22日  _x86_64_        (1 CPU)

14時52分47秒       LINUX RESTART

15時00分02秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時10分01秒     all      0.05      0.00      0.08      0.06      0.00     99.81
15時20分01秒     all      0.05      0.00      0.08      0.00      0.00     99.88
15時30分01秒     all      0.05      0.00      0.08      0.00      0.00     99.87
15時40分01秒     all      0.05      0.00      0.08      0.00      0.00     99.87
15時50分01秒     all      0.04      0.00      0.08      0.03      0.00     99.84
16時00分01秒     all      0.04      0.00      0.08      0.00      0.00     99.88
16時10分01秒     all      0.05      0.00      0.08      0.00      0.00     99.87
16時20分02秒     all      0.05      0.00      0.08      0.00      0.00     99.88
16時30分01秒     all      0.04      0.00      0.07      0.00      0.00     99.88
16時40分01秒     all      0.04      0.00      0.08      0.00      0.00     99.87
16時50分01秒     all      0.05      0.00      0.08      0.00      0.00     99.87
17時00分01秒     all      0.05      0.00      0.08      0.00      0.00     99.88
17時10分01秒     all      0.05      0.00      0.08      0.00      0.00     99.86
17時20分01秒     all      0.05      0.00      0.08      0.00      0.00     99.87
17時30分01秒     all      0.05      0.00      0.09      0.01      0.00     99.85
17時40分01秒     all      0.04      0.00      0.08      0.00      0.00     99.88
17時50分01秒     all      0.04      0.00      0.08      0.00      0.00     99.88
...

これで過去を遡って負荷状況を確認出来ます。

●時間指定で情報を取得したい場合

-s 開始時刻  -e 終了時刻

20:00:00から23:00:00までの情報を表示した場合は下記のようになります。

[root@test ~]# sar -b -f /var/log/sa/sa22 -s "20:00:00" -e "23:00:00"
Linux 3.10.0-1062.9.1.el7.x86_64  2020年07月22日  _x86_64_        (1 CPU)

20時00分01秒       tps      rtps      wtps   bread/s   bwrtn/s
20時10分01秒      1.14      0.00      1.14      0.00      9.69
20時20分01秒      1.13      0.00      1.13      0.00      9.71
20時30分01秒      1.12      0.00      1.12      0.00      9.45
20時40分01秒      1.12      0.00      1.12      0.00      9.62
20時50分02秒      1.12      0.00      1.12      0.00      9.57
21時00分01秒      1.16      0.00      1.16      0.00     10.10
21時10分01秒      1.14      0.00      1.14      0.00      9.89
21時20分01秒      1.12      0.00      1.12      0.00      9.44
21時30分01秒      1.12      0.00      1.12      0.00      9.49
21時40分01秒      1.13      0.00      1.13      0.00      9.74
21時50分01秒      1.12      0.00      1.12      0.00      9.53
22時00分01秒      1.13      0.00      1.13      0.00      9.74
22時10分01秒      1.16      0.00      1.16      0.00     10.07
22時20分01秒      1.12      0.00      1.12      0.00      9.40
22時30分01秒      1.12      0.00      1.12      0.00      9.51
22時40分01秒      1.14      0.00      1.14      0.00      9.78
22時50分01秒      1.11      0.00      1.11      0.00      9.38
平均値:       1.13      0.00      1.13      0.00      9.65

これにより時間ごとで状況の把握が可能になり負荷原因の調査が捗ります。

——————

今回は基礎的な部分の紹介となりましたが、
次回はsarコマンドを応用した使い方を紹介していきたいと思うので
日々の勉強を忘れず取り組んでいきたいと思います!

それではこの辺で失礼します。お読み頂きありがとうございます。

実績数30,000件!
サーバーやネットワークなど
ITインフラのことならネットアシストへ、
お気軽にご相談ください