查磁盘历史利用率需先确保sysstat服务运行,再用sar -d -f指定日志文件(如sa10)查看,加-p显示完整设备名,重点关注%util、tps、rd_sec/s、wr_sec/s(需换算为MB/s)和await等指标。

要查磁盘历史利用率,关键不是“实时看”,而是确认数据有没有被存下来、能不能读出来。sar 本身不主动采集,它只是读取 sysstat 后台服务写好的二进制日志文件(/var/log/sa/saXX)。没开服务,就没有历史;开了但没配好,也可能看不到设备或数值为 0。
先确保 sysstat 服务在运行
这是前提,否则所有历史查询都无效:
- 检查状态:systemctl is-active sysstat,返回 active 才行
- 如果显示 inactive,执行:systemctl enable --now sysstat
- 默认每 10 分钟采集一次,数据写入 /var/log/sa/sa$(date +%d)(比如今天是 10 号,就是 sa10)
查指定日期的磁盘 I/O 历史
用 -d 选项配合 -f 指定日志文件:
- 查今天(10 号)的磁盘汇总:sar -d -f /var/log/sa/sa10
- 查昨天(9 号)的磁盘情况:sar -d -f /var/log/sa/sa09
- 加 -p 显示完整设备名(如 nvme0n1、sda),避免 DEV 列为空:sar -d -p -f /var/log/sa/sa10
聚焦关键指标和单位换算
输出中几个字段最能反映磁盘负载强度:
- %util:I/O 请求占 CPU 时间百分比,持续 >80% 说明磁盘可能成为瓶颈
- tps:每秒 I/O 请求数,数值高不一定有问题,需结合 await 和 %util 看
- rd_sec/s 和 wr_sec/s:单位是扇区/秒(1 扇区 = 512 字节),不是 MB/s;换算成 MB/s 要 ×512 ÷ 1024 ÷ 1024
- await:平均每次 I/O 的等待+服务时间(毫秒),>10ms 值得关注,>30ms 通常表示响应变慢
查某一时段或跨天数据的注意事项
时间范围控制要用 -s(start)和 -e(end),但要注意边界问题:
- 查今天下午 2 点到 4 点:sar -d -s 14:00:00 -e 16:00:00 -f /var/log/sa/sa10
- 如果想查 23:50 到次日 00:10,sar 不会自动拼接 sa10 和 sa11,必须分两次查
- DEV 为空或全 0?常见原因包括:sysstat 版本太老(


















