sar

簡介

sar(系統活動回報程式)- Sar - RedHat/CentOS 內建的系統效能分析工具,這工具會蒐集、回報本日截至目前為止的系統活動資訊。預設的資訊包括本日的 CPU 使用率,每十分鐘採樣一次。

特點:

可分析的系統資訊包含如下:

Sar 如何運作

Sar Cron Jobs:
/etc/cron.d/sysstat

# run system activity accounting tool every 10 minutes 
*/10 * * * * root /usr/lib/sa/sa1 1 1 

# generate a daily summary of process accounting at 23:53 
53 23 * * * root /usr/lib/sa/sa2 -A

If it is desired for SAR to collect data more frequently, simply change "*/10" to a new interval.

For example, if to make SAR to track every 5 minutes, simply change to "*/5".

NOTE:

SAR does not add significant load to a server. It safely can be tuned down to 2 minute intervals without seeing a significant problem. SAR also does not grab individual block data.

RHEL 8/9 不再使用 crontab 方式,如要調整 interval,請見下方步驟。

安裝

RedHat 5/6/7/8/9

yum install sysstat

For RHEL 8/9 only

systemctl start sysstat-collect.timer
設定 Interval (for RHEL 8/9)

執行

systemctl cat sysstat-collect.timer
export SYSTEMD_EDITOR=/usr/bin/vi
systemctl edit sysstat-collect.timer

上述指令會開啟檔案: /etc/systemd/system/sysstat-collect.timer.d/override.conf ,將下方內容貼上

NOTE: 有一行 OnCalendar=<空白>,這行主要是用來移除預設值。

[Unit]
Description=Run system activity accounting tool every 1 minute

[Timer]
OnCalendar=
OnCalendar=*:00/1

套用變更

systemctl daemon-reload
systemctl restart sysstat-collect.timer

驗證

systemctl cat sysstat-collect.timer
systemctl status sysstat-collect.timer
使用方法

顯示今日 CPU 狀態

# 每個處理器
sar -P ALL

# 顯示 CPU
sar -u 

顯示最近月份 13 號的網路狀態

sar -n ALL -f /var/log/sa/sa13

顯示最近一個月份 7 號 時間 10:00 - 14:00 的記憶體使用狀況,並將結果導出一個檔案

sar -r -s 10:00:00 -e 14:00:00 -f /var/log/sa/sa07 -o /tmp/mem.txt

即時監看

# CPU on the Fly 10 times every 2 seconds
sar -u 2
sar -u 2 10
# Output to the file and read the file
sar -u 2 10 -o cpu.sa >/dev/null 2>&1 
sar -f cpu.sa

# Memory
# kbcommit & %commit is the overall memory used including RAM & Swap
sar -r 1
sar -r 1 10

# Swap
sar -S 1
sar -S 1 10

# I/O
sar -b 1
sar -b 1 10
sar -p -d 1
sar -p -d 1 10

# Paging
# - majflts/s shows the major faults per second means number of pages loaded into the memory from disk (swap), 
#   if its value is higher then we can say that system is running out of RAM.
# - %vmeff indicates the number of pages scanned per second, if it’s vaule is 100 % its is consider OK and 
#   when it is below 30 % then there is some issue with virtual memory. Zero value indicates that there is no page scanned during that time.
sar -B 1

# Network
sar -n ALL
線上分析器

RedHat 提供幾個透過線上的工具來分析
I/O 使用分析: https://access.redhat.com/labs/rhiou/

在系統內先執行 lsblk 將輸出內容導出一個檔案 lsblk.out,將此檔連同要分析的任一個 sarXX 檔上傳該網址,即可以圖形顯示系統 I/O 的使用狀態。

Memory 使用分析: https://access.redhat.com/labs/rhma/

延伸閱讀

Revision #18
Created 12 January 2021 02:32:04 by Admin
Updated 26 September 2022 11:18:32 by Admin