それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

sar / sysstat で cpu 利用率を計測し計測値を記録し、調査する

grafana+prometheus でロードアベレージを監視してもいいんだけど

ちょっとログを集めたいのに、あまりにもヘビィだと思うの。

sysstat / sar を使う

古のパッケージ sar コマンドで、CPU利用率を集計する

sar / sysstat で cpu 利用率を詳しく調査する

インストール

apt でインストールが可能

sudo apt install sysstat

楽ちん

起動 と設定とタイマー

マニュアル起動(ログ書いて終了する)

sudo systemctl start sysstat-collect.service

タイマー開始

sudo systemctl start sysstat-collect.timer

タイマー間隔(取得間隔)を調整

sudo systemctl edit sysstat-collect.timer

例えば、15分に1回(初期値は10分に一回)

[Timer]
OnCalendar=*:00/15

設定(ログ保存期間)

sudo vim /etc/sysstat/sysstat

/etc/sysstat/sysstat

# How long to keep log files (in days).
HISTORY=30
# Compression program to use.
ZIP="pixz"
# Parameters for the system activity data collector (see sadc(8) manual page)
SADC_OPTIONS=""

設定したポイント - 初期設定は1週間ほどなので、1ヶ月間位残しておく - xz は pixz を使うようにする。 - CPU統計がほしいだけなのでディスク統計は要らない。足りなくなったら買うだけだし

統計の確認

ログが溜まったら、取得期間全体で統計(平均)が見れられる

sudo sar 

直接ログの確認(日毎ファイルになってる)

sar -f /var/log/sysstat/sa$(date +"%Y%m%d")

cat したいところだけど、バイナリなのでsar コマンドで読む

実行例

sar -f /var/log/sysstat/sa$(date +"%Y%m%d")
Linux 5.10.0-13-amd64 (acid)    2022年04月28日   _x86_64_    (8 CPU)

13時41分00秒  LINUX RESTART  (8 CPU)

13時41分42秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
13時44分30秒     all      4.80      0.50      1.17      0.36      0.00     93.17
平均値:      all      4.80      0.50      1.17      0.36      0.00     93.17

指定した範囲のログの確認

takuya@:~$ sudo sar -s 13:00 -e 13:59
Linux 5.10.0-13-amd64 (acid)    2022年04月28日   _x86_64_    (8 CPU)

13時41分00秒  LINUX RESTART  (8 CPU)

13時41分42秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
13時44分30秒     all      4.80      0.50      1.17      0.36      0.00     93.17
13時50分00秒     all      4.66      0.47      1.17      0.69      0.00     93.02
平均値:      all      4.71      0.48      1.17      0.57      0.00     93.07

リアルタイムモニタリング

ターミナルで表示し続けるする場合。マニュアル起動で今の状態を監視ができる。 ただし、この目的なら s-tui や htop を使ったほうがいい

1秒ごとに状態を取得する

sudo sar 1

1秒ごとに状態を取得する(最大10回,1s x 10=10sで終了)

sudo sar 1 10 

マルチCPUを個別に見る

sudo sar -u -P 0,1     1 10
sudo sar -u -P 0,1,2,3 1 10
sudo sar -u -P ALL     1 10

ロードアベレージ

sudo sar -q 1 10

ネットワークの状態

sudo sar -n DEV 1 10 

指定したIFの状態

sudo sar -n DEV  --iface=br0 1 10

リプレース・買い替えの目安に

CPUパワーが3倍に上がったとして、どこまでそのメリットを享受できるのか

金銭コストに対し、十分な時間的なリターン得られるのか。

電気代はどの程度になりそうなのか(CPUロードアベレージから概算)

など、CPU利用率を測定して計測値を集めるといろいろ見えてきそうですよね。

参考資料

http://performance.oreda.net/linux/check/sar