要使用 sar 查看昨天的 CPU 历史负载曲线,需读取 /var/log/sa/sa28(以7月28日为例)二进制日志,执行 sar -u ALL -f /var/log/sa/sa28;若文件不存在,检查 sysstat 是否启用并运行。

要使用 sar 查看昨天的 CPU 历史负载曲线,关键在于定位并读取系统自动保存的昨日性能日志文件。Linux 的 sar 默认依赖 sysstat 服务,该服务每天将采样数据写入 /var/log/sa/ 目录下的二进制文件(如 sa28 表示 7 月 28 日的数据,因今天是 7 月 29 日)。
确认昨日日志文件名
sar 按日期命名日志:文件名格式为 saDD,其中 DD 是两位数的日期。昨天是 7 月 28 日,对应文件就是 /var/log/sa/sa28。
- 执行命令验证是否存在:
ls -l /var/log/sa/sa28 - 若提示“没有那个文件”,可能是
sysstat未启用或日志轮转策略限制了保留天数(默认通常保留 7 天)
查看昨日 CPU 使用率曲线
运行以下命令,可输出昨日每 10 分钟一次的 CPU 各项指标(%user、%system、%iowait 等),形成时间序列数据:
sar -u ALL -f /var/log/sa/sa28
-
-u ALL表示显示所有 CPU 使用率细分项(用户态、内核态、IO 等) -
-f指定读取指定二进制日志文件 - 输出中每行代表一个采样时刻,时间列在最左侧,便于观察趋势变化
导出为文本便于绘图或分析
若需进一步做图表(如用 Excel 或 Python 绘制曲线),可将结果保存为 CSV 格式:
sar -u ALL -f /var/log/sa/sa28 | awk '{print $1","$3","$4","$5","$6","$7","$8","$9","$10}' > cpu_yesterday.csv
- 该命令提取时间与各 CPU 百分比字段,用逗号分隔
- 注意:首几行是标题和空行,实际绘图前建议手动清理或加
awk 'NR>3'跳过
补充说明:sar 日志的生成前提
sar 本身不主动采集,它只是读取日志;真正负责定时采集的是 sysstat 的 cron 任务(通常位于 /etc/cron.d/sysstat)。
- 确保服务已启用:
systemctl is-enabled sysstat应返回enabled - 确认服务正在运行:
systemctl status sysstat,状态应为active (exited)(表示 cron 已触发采集) - 若昨日无数据,检查该 cron 是否执行成功,或是否被禁用


















