首页/系统/Linux 运维命令速查/sar 历史性能数据回看
性能与监控48 条

sar 历史性能数据回看

sysstat 的 sar 存下历史采样:过去某时段 CPU/内存/网络/IO 随时回看,排「昨天半夜为什么慢」类问题必备。

Linux 运维命令速查系统更新于 2026-10-13

sar 是什么

sar 保存历史性能采样:CPU、内存、网络与磁盘指标按时段留存,事后可以回看,是回答「昨天半夜为什么慢」这类问题的关键工具。数据由配套的采集机制定时写入,默认保留一段时间。它能不能用起来,取决于采集有没有被开启。

基本信息

适用场景回看历史时段的系统性能数据
数据位置系统日志目录下按日期命名的存档文件
采集机制由定时器或系统 cron 驱动,默认间隔十分钟左右
前提采集服务必须先启用,历史数据不会被追溯生成

典型使用场景

  • 事故复盘:回看故障时段各维度的指标
  • 容量评估:对比历史同期,判断是否需要扩容
  • 定位周期性问题:找出每天同一时刻变慢的规律
  • 网络排查:看网卡收发在异常时段的表现
  • 与实时工具配合:先用实时工具确认现象,再用历史数据找规律

常用示例

常用示例
sar -u -s 08:00:00 -e 09:00:00      # 指定时段的 CPU
sar -r 1 3                          # 内存
sar -n DEV 1 3                      # 网卡
sar -d -p 1 3                       # 磁盘(含分区)
sar -q 1 3                          # 负载与运行队列

读历史存档

读历史存档
ls /var/log/sa/
sar -f /var/log/sa/sa11 -u          # 读指定日期的存档
systemctl status sysstat-collect.timer

常用维度

维度查看内容提示
CPU用户态、系统态、空闲与等待比例最常用
内存占用与换页情况结合历史看趋势
网络各网卡收发量排查带宽异常
磁盘设备与分区读写配合延迟看瓶颈
队列负载与运行队列长度判断排队程度
采集默认未启用时存档目录是空的,历史数据不会追溯生成。需要长期回溯就尽早打开采集,并把重要指标单独留存。
默认保留时长有限,事故复盘要尽快采集。对关键指标建议另外存入长期存储,不受默认轮转周期限制。

历史数据常见误读

现象常见误读正确理解
读取历史文件当成实时监控平均值会平滑掉峰值
看单次采样直接下结论要连续多次观察趋势
跨月回看按文件名猜日期核对文件内的时间范围
依赖默认保留以为永久留存保留周期有限,尽早导出
只关注均值据此做容量评估需同时看峰值与持续时间
用历史数据复盘前先确认两件事:采集任务是否一直正常在跑、保留周期是否覆盖目标时间点。这两点不成立时后面所有分析都是空转。把关键指标导出成表格再与变更窗口对齐,比在交互界面里来回翻页可靠得多。

易错点

  • 采集没启用就去翻历史文件,白忙一场
  • 默认保留周期不长,拖几天之后再复盘可能已经没有数据
  • 把采集间隔当成实时精度,用它判断秒级瞬时抖动会失真
  • 历史文件按日期命名,跨月读取时容易取错文件
  • 只看平均值不看峰值,容量评估会偏乐观
  • 把采集间隔当成数据精度:间隔决定了能看到的粒度,用它判断秒级抖动会失真,需要更细粒度时应改时段重新采集而不是反复回看平均值

数据来源与参考

  • man 1 sar(sysstat)
  • sysstat 官方文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌