iostat -x 是查看磁盘分区平均等待时间(await)和利用率(%util)最常用且准确的方式;需先安装sysstat包,再执行iostat -x 1 3观察趋势,重点关注await(ms)和%util(%),并可用-p参数精准定位分区。

用 iostat -x 命令就能直接看到磁盘分区的平均等待时间(await)和利用率(%util),这是最常用也最准确的方式。
确认安装并运行基础命令
确保系统已安装 sysstat 包:
- CentOS/RHEL:运行
yum install -y sysstat - Ubuntu/Debian:运行
apt install -y sysstat
安装后执行:
iostat -x 1 3 —— 每秒刷新一次,共输出 3 组扩展指标(推荐用于观察趋势)
重点关注两个关键字段
在输出的设备行(如 sda、nvme0n1p1 或具体分区名)中,找到:
- await:单位为毫秒(ms),表示该设备上每次 I/O 请求的平均等待时间(含排队 + 服务时间)。普通 SATA 盘通常 50 ms,说明 I/O 队列积压严重。
- %util:单位为百分比,表示该设备一秒内忙于处理 I/O 的时间占比。接近 100% 表示设备饱和;长期 > 80% 就需警惕,可能成为瓶颈。
结合分区名精准定位
若只想看某个分区(比如 /dev/sdb1),加 -p 参数:
iostat -xp sdb1 1 或 iostat -xp /dev/sdb1 1
注意:-p 后可跟设备名或完整路径,支持通配(如 -p sdb 会显示 sdb 及其所有分区)。
辅助验证与上下文参考
单看 await 和 %util 不够全面,建议同步关注:
- avgqu-sz:平均队列长度。值 > 1 且持续上升,说明请求在排队;SSD 上 > 4、机械盘 > 2 都算偏高。
-
svctm(已逐步弃用,但仍有参考价值):若
await ≫ svctm,说明等待时间主要来自排队,而非设备本身慢。 - %iowait(在 CPU 段):top 或 iostat -c 中查看,> 20% 通常印证磁盘存在压力。











