sar -d 是什么
sar -d 读取 sysstat 的历史采集文件,回看任意时点的磁盘 tps、读写扇区数、await 与 util 等指标。前提是系统启用了 sysstat 采集(多数发行版随包装好即启用)。实时采样与历史回放用同一套参数,是事后复盘与容量趋势的主力工具。
基本信息
| 适用平台 | Linux(sysstat 包) |
|---|---|
| 实时采样 | sar -d -p 1 3 |
| 历史读法 | sar -d -p -f /var/log/sysstat/sa<DD>,路径按发行版调整 |
| 启用前提 | /etc/sysconfig/sysstat 或 /etc/default/sysstat 中采集为开启 |
| 配套命令 | sar -b 看整机 IO 总览,sar -u 看 CPU |
典型使用场景
- 事后复盘:报障时间已过去,用 -f 指定当天数据文件回放当时的磁盘指标
- 容量趋势:对比多天同一时段的 tps 与吞吐,判断增长是否线性
- 变更验证:调优或换盘前后各取一天数据,用同一口径对比
- 定时任务影响分析:定位凌晨备份窗口内实际受压的设备
- 多机对比:同角色机器取同一时段数据,找出异常节点
常用命令
常用命令
sar -d -p 1 3 # 实时采样,-p 显示可读设备名
sar -d -p -f /var/log/sysstat/sa12 # 回看指定日期数据,路径按环境调整
sar -d -p -s 09:00:00 -e 09:30:00 # 只看指定时间段,缩小分析范围
sar -b 1 3 # 整机 IO 总览行,先看趋势再看设备输出逐列读法
| 列 | 含义 | 判读 |
|---|---|---|
| DEV | 设备名 | -p 时显示 sdX,否则显示 major-minor 形式 |
| tps | 每秒 IO 请求数 | 与业务写入量对照判断是否合理 |
| rd_sec/s、wr_sec/s | 每秒读写扇区数 | 扇区按 512 字节换算后再与带宽比较 |
| await | 平均等待毫秒 | 明显高于该设备基线说明排队 |
| %util | 设备忙时间占比 | 接近 100% 可能饱和,NVMe 上会失真 |
历史数据目录因发行版而异:Debian/Ubuntu 在 /var/log/sysstat,RHEL/CentOS 在 /var/log/sa。取不到数据时先确认采集是否开启、保留天数是否覆盖目标日期。
采集配置核对
采集配置核对
systemctl status sysstat # 确认采集服务处于运行状态
grep -E 'ENABLED|HISTORY' /etc/sysconfig/sysstat # RHEL 系:开关与保留天数
ls /var/log/sysstat/ # 确认目标日期的数据文件存在复盘步骤
- 先确认目标日期的历史文件存在且能被 sar 解析
- 用 -s/-e 收缩到故障时间窗,避免在海量输出里翻找
- 先用 sar -b 看整机 IO 方向,再用 sar -d 定位设备
- 把结论与当时的业务量、变更记录对齐,形成因果链
sysstat 的历史文件按天保留,默认通常只留 7 到 30 天。需要更长回溯窗口时要提前调大保留天数,否则关键故障的原始数据会在复盘前被清理掉。