在CentOS 7系统中,系统资源监控是保障服务器稳定运行的关键环节。sar(System Activity Reporter)作为sysstat工具包的重要组成部分,提供了全面的系统性能数据收集与分析功能,通过sar,管理员可以实时跟踪CPU、内存、磁盘I/O、网络等关键指标,为性能优化和故障排查提供可靠依据。

安装与启用sysstat工具
默认情况下,CentOS 7可能未预装sysstat工具包,需通过以下命令安装:
sudo yum install sysstat
安装完成后,sysstat服务会自动启用并设置为开机自启,若需手动管理服务,可使用:
sudo systemctl start sysstat sudo systemctl enable sysstat
sysstat的日常数据采集由sa1和sa2脚本完成,前者负责收集并压缩数据,后者生成每日报告,默认配置下,数据会保存在/var/log/sa/目录中,文件名格式为sadd(dd为日期)。
核心功能与常用命令
-
CPU性能监控
sar -u命令可展示CPU利用率,包括用户态(%user)、系统态(%system)、空闲(%idle)等指标。sar -u 1 5 # 每秒采样1次,共5次
若需查看历史数据,可指定日期:

sar -u -s 10:00:00 -e 18:00:00 # 查询当天10:00-18:00的CPU数据
-
内存与交换空间监控
使用sar -r观察内存使用情况,包括kbmemfree(空闲内存)、kbmemused(已用内存)、kbswpfree(交换区空闲空间)等,通过sar -B可分析内存换页频率,判断是否存在内存瓶颈。 -
磁盘I/O监控
sar -b报告显示每秒传输次数(tps)、读取扇区数(rtps)、写入扇区数(wtps)等;sar -d则细化到单个设备的I/O性能,如设备名、await(平均等待时间)、util(磁盘利用率)。 -
网络流量监控
sar -n DEV统计网络接口的接收(rxpck/s)和发送(txpck/s)包数,sar -n TCP则关注TCP连接数(active/s、passive/s)等协议层指标。
日志管理与数据归档
sysstat默认保留最近30天的数据,可通过修改/etc/sysconfig/sysstat文件中的HISTORY参数调整保留时长,若需手动清理旧数据,可执行:
sudo find /var/log/sa -name "sa[0-9]*" -mtime +30 -delete
对于长期性能分析,建议将历史数据导出至CSV格式,结合Excel或Grafana进行可视化处理。

性能分析与优化建议
- CPU瓶颈:若
%user持续高于70%,且%idle低于10%,需检查高负载进程;%system过高则可能存在系统调用频繁或内核问题。 - 内存瓶颈:
kbmemused接近物理内存总量且kbswpused增长过快,表明内存不足,需考虑优化应用或扩容。 - 磁盘瓶颈:
util超过70%或await远高于磁盘平均寻道时间时,建议调整I/O调度策略或升级存储设备。 - 网络瓶颈:
rxerr/s或txerr/s异常升高可能表明网卡故障或网络拥塞,需进一步排查链路质量。
FAQs
如何解决sar命令提示“-u: invalid option”错误?
该错误通常因未指定采样间隔导致,正确语法为sar [选项] [时间间隔] [采样次数],例如sar -u 1 10表示每秒采样1次,共10次,若需查看历史数据,可直接使用sar -u -f /var/log/sa/saDD(DD为日期)。
如何设置sar自动生成每日报告并发送邮件?
修改/etc/cron.daily/sysstat文件,在报告生成后添加邮件发送命令。
sudo sed -i '/sar -A/a\mail -s "Daily System Report" admin@example.com < /var/log/sa/sa$(date +%d)' /etc/cron.daily/sysstat
需确保系统已配置邮件服务(如postfix),并替换admin@example.com为目标邮箱地址。