- 安装
需要EPEL源
yum install -y sysstat
- 配置日志留存时间
修改配置文件/etc/sysconfig/sysstat。
# sysstat-10.1.5 configuration file.
# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=28 <----------------修改这里
# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
# Compression program to use.
ZIP="bzip2"
- 性能采集脚本
- 从 SAR 报告中获取平均 CPU 利用率
该 bash 脚本从每个数据文件中收集 CPU 平均值并将其显示在一个页面上。
# vim /opt/scripts/sar-cpu-avg.sh
#!/bin/sh
echo "+----------------------------------------------------------------------------------+"
echo "|Average: CPU %user %nice %system %iowait %steal %idle |"
echo "+----------------------------------------------------------------------------------+"
for file in `ls -tr /var/log/sa/sa* | grep -v sar`
do
dat=`sar -f $file | head -n 1 | awk '{print $4}'`
echo -n $dat
sar -f $file | grep -i Average | sed "s/Average://"
done
echo "+----------------------------------------------------------------------------------+"
- 从 SAR 报告中获取平均内存利用率
该 bash 脚本从每个数据文件中收集内存平均值并将其显示在一个页面上。
# vi /opt/scripts/sar-memory-avg.sh
#!/bin/sh
echo "+-------------------------------------------------------------------------------------------------------------------+"
echo "|Average: kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty |"
echo "+-------------------------------------------------------------------------------------------------------------------+"
for file in `ls -tr /var/log/sa/sa* | grep -v sar`
do
dat=`sar -f $file | head -n 1 | awk '{print $4}'`
echo -n $dat
sar -r -f $file | grep -i Average | sed "s/Average://"
done
echo "+-------------------------------------------------------------------------------------------------------------------+"
- 从 SAR 报告中获取 CPU 和内存平均利用率
该 bash 脚本从每个数据文件中收集 CPU 和内存平均值并将其显示在一个页面上。该脚本与上面相比稍微不同。它在同一位置同时显示两者(CPU 和内存)平均值。
# vi /opt/scripts/sar-cpu-mem-avg.sh
#!/bin/bash
for file in `ls -tr /var/log/sa/sa* | grep -v sar`
do
sar -f $file | head -n 1 | awk '{print $4}'
echo "-----------"
sar -u -f $file | awk '/Average:/{printf("CPU Average: %.2f%\n"), 100 - $8}'
sar -r -f $file | awk '/Average:/{printf("Memory Average: %.2f%\n"),(($3-$5-$6)/($2+$3)) * 100 }'
printf "\n"
done
参考文献
https://www.2daygeek.com/linux-get-average-cpu-memory-utilization-from-sar-data-report/