按周期采样的历史性能数据
sysstat 套件由计划任务按固定间隔采集系统指标并写入二进制文件,默认保存在 /var/log/sa/ 目录下,文件名形如 sa15(表示当月第 15 天)。这些数据能回溯事件时段的主机状态:CPU 占用、磁盘读写、网络流量、进程活动等,为时间线提供旁证,尤其是判断某个时段主机是否处于异常高负载。
二进制文件要用专用命令读
sa 系列文件是二进制格式,直接用编辑器或 cat 打开是乱码,必须用 sar -f 指定文件读取。可以只取某个时间区间,避免在无关时段上浪费时间。默认保留周期通常只有数周,历史深度取决于配置中的保留份数。
基本信息
| 适用平台 | Linux(sysstat 套件,安装后由计划任务采集) |
|---|---|
| 数据目录 | /var/log/sa/,文件名按当月日期编号 |
| 读取命令 | sar -f 文件 -s 起点 -e 终点 |
| 常用类型 | -u CPU、-d 磁盘、-n DEV 网络接口、-q 负载 |
| 保留深度 | 由配置决定,默认一般数周 |
典型使用场景
- 判断数据外传时段:看网络接口流量在某时段是否陡增
- 排查加密勒索行为:磁盘写入量在短时间内的异常抬升
- 确认主机是否被用作计算资源:CPU 在非工作时段持续高占用
- 核对服务中断:负载骤降或指标缺失对应停机时段
- 为时间线补充旁证:把性能拐点与日志事件对齐
回溯历史指标
回溯历史指标
# 列出可用的数据文件,文件名中的数字是当月日期
ls -l /var/log/sa/ | head
# 查看某天的 CPU 指标,限定时间段
sar -u -f /var/log/sa/sa15 -s 09:00:00 -e 11:00:00 | head -30
# 网络接口流量:判断是否有大量外传
sar -n DEV -f /var/log/sa/sa15 -s 09:00:00 -e 11:00:00 | head -20
# 磁盘写入量:判断是否有批量打包行为
sar -d -f /var/log/sa/sa15 -s 09:00:00 -e 11:00:00 | head -20
# 查看采集配置与保留份数
cat /etc/default/sysstat /etc/sysconfig/sysstat 2>/dev/null | head常用指标与含义
| 指标 | 含义 | 异常表现 |
|---|---|---|
| %user / %system | 用户态与内核态 CPU 占用 | 非工作时段持续偏高 |
| %iowait | 等待 IO 的时间占比 | 明显抬升说明磁盘成为瓶颈 |
| rkB/s / wkB/s | 磁盘读写速率 | 写入突增常与批量打包相关 |
| rxkB/s / txkB/s | 网络收发速率 | 发送突增可能与数据外传相关 |
| ldavg-1 | 一分钟平均负载 | 突变时刻可对应事件起点 |
系统未安装 sysstat 或计划任务被禁用时,历史数据文件根本不存在;在报告里要把「没有历史指标」与「指标正常」区分开来。
采样间隔通常为十分钟,短促的爆发行为可能落在两次采样之间而被平均掉;解读峰值时要结合采样间隔说明分辨能力。