IT二刀流にはプロモーションが含まれています。

Linuxで過去のCPU負荷やメモリ負荷を調べる

Linuxコマンド

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構築時に入れることをお勧めします。(デフォルトで入っているかも。)

ITエンジニアの転職

いまITエンジニアの需要は急拡大しています。
ITエンジニアの経験があれば好条件で転職することも難しくありません。

ネットビジョンアカデミー

☆ 支援ご協力のお願い ☆

この記事が「役に立った」と感じたら

投げ銭の「OFUSEで応援」で支援して頂けたら励みになります!

OFUSEのやり方(説明)

関連記事
記事特集