CentOSで過去のCPU負荷やメモリ負荷を調べる方法です。

ふいにサーバが不調になったときや、リソースをチェックしたいときなどに使えます。

CPUやメモリ負荷の調査

急なサーバダウンや不調でサーバのリソース状況を調べたいときがあります。

zabbixなどでサーバ監視などをおこなっていれば問題ありませんが、何も監視していない場合もあります。

監視しろよって話ですが、急にそんなこと言ったってしょうがないじゃないか。

そんな時に使えるかもしれない対処法です。

sarコマンド

サーバにsysstatがインストールされていれば救われます。

サーバを構築した人に感謝しましょう、神ですその人は。

10分おきにサーバリソースが取得されています。

インストール確認

# rpm -qa | grep sysstat
sysstat-10.1.5-7.el7.x86_64

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使用率の確認

# 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 -p
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のデータファイルは/var/log/saの中にあります。

1日1ファイル生成されているようなので、過去に遡ってリソースを確認することができます。

-fオプションでファイルを指定します。

# sar -p -f /var/log/sa/sa02

まとめ

サーバの障害は突然やってきます、本番環境なら監視しているでしょうが、開発用や検証用のサーバまでは難しいでしょう。

上司なんかは障害が起きてから「なんで監視していないんだ!」なんて言うけど、そこまで手が回らんのよ。

まずはログを見るのが先ですが、リソースなどの状況も後から確認できるので便利です。

ディスクIOやネットワークなども確認できるようですし。

sar(sysstat)はOS構築時に入れることをお勧めします。(デフォルトで入っているかも。)