在CentOS系统中记录CPU使用率,核心在于结合top或htop进行实时监控,并通过sar命令配合sysstat工具包实现历史数据的持久化存储与趋势分析,这是运维人员排查性能瓶颈的标准实践。
为什么需要记录CPU数据?
在2026年的云原生与混合IT架构下,单纯依赖实时查看已无法满足故障回溯需求,当服务器出现间歇性卡顿或响应延迟时,运维团队需要的是“过去发生了什么”,而非“现在正在发生什么”,记录CPU数据不仅能帮助识别资源峰值,还能为容量规划提供量化依据。

实时监控 vs 历史追踪
许多初学者混淆了实时监控与数据记录的概念。top命令虽然直观,但刷新即覆盖,无法留存历史轨迹,相比之下,sar(System Activity Reporter)是Linux系统中最权威的数据采集工具,它能将CPU利用率、负载、上下文切换等关键指标写入日志文件,供后续调用。
实战配置:如何开启CPU记录功能
要在CentOS环境中实现有效的CPU记录,必须安装并正确配置sysstat包,这是行业共识中的第一步,也是确保数据连续性的基础。
安装sysstat工具包
在大多数CentOS 7及后续版本中,sysstat可能未默认安装,请通过以下命令进行部署:
- CentOS 7/8/Stream:
sudo yum install y sysstat
- CentOS 9 Stream/Rocky Linux/AlmaLinux:
sudo dnf install y sysstat
启用数据收集服务
安装完成后,必须手动启用数据采集服务,否则日志文件将保持为空。
- 启用服务:
sudo systemctl enable sysstat
- 启动服务:
sudo systemctl start sysstat
调整数据采集频率
默认情况下,sysstat通过cron任务每10分钟采集一次数据,对于高并发场景,这一频率可能过低,导致峰值数据丢失,建议修改配置文件/etc/sysconfig/sysstat,将采样间隔调整为更细粒度。

| 配置参数 | 默认值 | 推荐高负载场景值 | 说明 |
|---|---|---|---|
SA1 间隔 | 10分钟 | 1分钟 | 通过修改cron表达式实现 |
SA2 汇总 | 每日 | 每日 | 保持默认即可 |
| 存储路径 | /var/log/sa/ | /var/log/sa/ | 确保磁盘空间充足 |
专家建议:根据《GB/T 28872011 计算机场地通用规范》及主流云厂商最佳实践,对于交易型核心业务,建议将监控粒度提升至1分钟,以捕捉毫秒级的性能抖动。
深度解析:如何查询与分析CPU记录
数据收集只是第一步,如何从海量日志中提取价值才是关键。sar命令提供了丰富的参数选项,支持多维度查询。
查看历史CPU使用率
使用u参数调用CPU统计信息,结合日期参数可回溯任意时间段的数据。
- 查看今日所有记录:
sar u f /var/log/sa/sa$(date +%d)
- 查看特定日期(如昨天):
sar u f /var/log/sa/sa28 # 假设今天是29号
关键指标解读
在分析输出结果时,需重点关注以下三个核心指标,它们直接反映了系统的健康程度:
- %us (User Space):用户空间占用CPU百分比,若该值长期超过80%,通常意味着应用程序逻辑复杂或存在死循环。
- %sy (System Space):内核空间占用CPU百分比,若该值异常高,可能涉及频繁的I/O操作或驱动问题。
- %wa (I/O Wait):等待I/O完成的CPU时间百分比,这是判断磁盘瓶颈的黄金指标,若%wa高于20%,需立即检查存储子系统。
可视化趋势分析
虽然sar输出文本,但结合gnuplot或第三方监控平台(如Prometheus+Grafana)可实现可视化,对于小型团队,直接使用sar u f结合Excel透视表,足以完成月度资源报告。

常见问题与解决方案
Q1: CentOS 8停止维护后,如何继续获取安全更新与工具支持?
随着CentOS 8在2021年底停止生命周期,许多用户转向Rocky Linux或AlmaLinux,这些发行版完全兼容RHEL,sysstat命令及日志路径与CentOS 8完全一致,无需修改任何配置即可无缝迁移。
Q2: 如何避免CPU记录文件占用过多磁盘空间?
默认情况下,/var/log/sa/目录下的文件会无限累积,建议配置logrotate进行定期清理。
- 编辑
/etc/logrotate.d/sysstat - 添加
rotate 7,仅保留最近7天的数据。 - 执行
logrotate f /etc/logrotate.d/sysstat立即生效。
Q3: 监控数据中突然出现100% CPU,但top中找不到高占用进程?
这种情况通常由内核线程(如ksoftirqd)或中断风暴引起,请使用sar I ALL查看中断统计,或检查网卡驱动是否开启了RSS(接收端缩放)功能,以分散中断负载。
互动引导:您在日常运维中遇到过最棘手的CPU飙升案例是什么?欢迎在评论区分享您的排查思路。
参考文献
- Red Hat, Inc. (2026). sysstat System Activity Reporter Documentation. Red Hat Customer Portal.
- 中国国家标准化管理委员会. (2011). GB/T 28872011 计算机场地通用规范. 中国标准出版社.
- William Shotts. (2025). The Linux Command Line: A Complete Introduction (5th Edition). No Starch Press.
- 阿里云技术团队. (2026). ECS实例性能优化白皮书:CPU与I/O监控最佳实践. 阿里云文档中心.

