sarコマンドで過去のCPU負荷やメモリ負荷を調べる方法です。
サーバが不調になったときや、過去のリソースをチェックしたいときなどに使えます。
CPUやメモリ負荷の調査
急なサーバダウンや不調でサーバのリソース状況を調べたいときがあります。
zabbixなどでサーバ監視などをおこなっていれば問題ありませんが、何も監視していない場合もあります。
監視しろよって話ですが、急にそんなこと言ったってしょうがないじゃないか。
そんな時に使えるかもしれない対処法です。
今回使用したOSはCentOS8です。
他のLinux系OSでも同じようにsarコマンドを使用できます。
sarコマンド
サーバにsysstatがインストールされていれば救われます。
サーバを構築した人に感謝しましょう、神ですその人は。
10分おきにサーバリソースが取得されています。
インストール確認
sarがインストールされているか確認します。
# rpm -qa | grep sysstat
sysstat-10.1.5-7.el7.x86_64
未インストール時
sarがインストールされていなければ、インストールします。
ただ、インストールされていなければ、残念ですが過去の履歴は見れません。
インストール後にcron設定をしてからデータ取得開始に鳴るためです。
# yum -y install sysstat
cron設定確認
# cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
リソースの確認方法
CPU使用率の確認
CPUリソースを確認するときは「sar -p」を使用します。
# sar -p
Linux 3.10.0-327.36.1.el7.x86_64 (fbi-server) 2021年07月07日 _x86_64_ (2 CPU)
09時40分01秒 CPU %user %nice %system %iowait %steal %idle
09時50分01秒 all 2.40 0.00 1.24 0.02 0.00 96.34
10時00分01秒 all 5.62 0.00 3.39 0.07 0.00 90.93
10時10分01秒 all 0.05 0.00 0.08 0.03 0.00 99.84
10時20分01秒 all 0.07 0.05 0.23 0.97 0.00 98.68
10時30分01秒 all 0.06 0.00 0.12 0.01 0.00 99.81
10時40分01秒 all 0.08 0.00 0.14 0.01 0.00 99.77
平均値: all 0.33 0.00 0.26 0.05 0.00 99.35
メモリ使用率の確認
メモリを確認するときは「sar -r」を使用します。
# sar -r
Linux 3.10.0-327.36.1.el7.x86_64 (cia-server) 2021年07月07日 _x86_64_ (2 CPU)
09時40分01秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
09時50分01秒 3657600 379056 9.39 936 160808 542912 6.60 162884 109504 0
10時00分01秒 3646064 390592 9.68 936 174196 559288 6.79 161860 120304 252
10時10分01秒 3642216 394440 9.77 936 174488 562464 6.83 164648 120344 4
10時20分01秒 3517748 518908 12.85 936 189240 563368 6.84 169168 131364 104
10時30分01秒 3516628 520028 12.88 936 189304 563368 6.84 169404 131376 8
10時40分01秒 3516160 520496 12.89 936 189816 563368 6.84 170284 131372 8
10時50分01秒 3513092 523564 12.97 936 189856 565148 6.87 172048 131388 8
平均値: 3524019 512637 12.70 1142 188967 566257 6.88 173069 130379 24
sarで過去のリソースを確認
sarのデータファイルは/var/log/saの中にあります。
1日1ファイル生成されているようなので、過去に遡ってリソースを確認することができます。
-fオプションでファイルを指定します。
# sar -p -f /var/log/sa/sa02
まとめ
サーバの障害は突然やってきます、本番環境なら監視しているでしょうが、開発用や検証用のサーバまでは難しいでしょう。
上司なんかは障害が起きてから「なんで監視していないんだ!」なんて言うけど、そこまで手が回らんのよ。
まずはログを見るのが先ですが、リソースなどの状況も後から確認できるので便利です。
sarはディスクIOやネットワークなども確認できます。
sar(sysstat)はOS構築時に入れることをお勧めします。(デフォルトで入っているかも。)