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 | 用户态、系统态、空闲与等待比例 | 最常用 |
| 内存 | 占用与换页情况 | 结合历史看趋势 |
| 网络 | 各网卡收发量 | 排查带宽异常 |
| 磁盘 | 设备与分区读写 | 配合延迟看瓶颈 |
| 队列 | 负载与运行队列长度 | 判断排队程度 |
采集默认未启用时存档目录是空的,历史数据不会追溯生成。需要长期回溯就尽早打开采集,并把重要指标单独留存。
默认保留时长有限,事故复盘要尽快采集。对关键指标建议另外存入长期存储,不受默认轮转周期限制。
历史数据常见误读
| 现象 | 常见误读 | 正确理解 |
|---|---|---|
| 读取历史文件 | 当成实时监控 | 平均值会平滑掉峰值 |
| 看单次采样 | 直接下结论 | 要连续多次观察趋势 |
| 跨月回看 | 按文件名猜日期 | 核对文件内的时间范围 |
| 依赖默认保留 | 以为永久留存 | 保留周期有限,尽早导出 |
| 只关注均值 | 据此做容量评估 | 需同时看峰值与持续时间 |
用历史数据复盘前先确认两件事:采集任务是否一直正常在跑、保留周期是否覆盖目标时间点。这两点不成立时后面所有分析都是空转。把关键指标导出成表格再与变更窗口对齐,比在交互界面里来回翻页可靠得多。