iostat可实时监控磁盘i/o性能;需先安装sysstat包,运行iostat -x 1查看%util、await、r/s、w/s、rkb/s、wkb/s、avgqu-sz等指标,并结合iotop、vmstat、/proc/diskstats交叉验证。

直接用 iostat 命令就能快速查看磁盘读写性能,它能实时显示每块磁盘的 I/O 速率、响应时间、队列长度等关键指标。
安装并运行 iostat
iostat 属于 sysstat 工具包,在大多数 Linux 发行版中默认未安装:
- Ubuntu/Debian:运行
sudo apt install sysstat - CentOS/RHEL:运行
sudo yum install sysstat或sudo dnf install sysstat - 安装后执行
iostat -x 1(-x 显示扩展统计,1 表示每秒刷新一次)
重点关注的核心指标
输出中需留意以下几列:
- %util:设备忙时百分比,接近 100% 表示磁盘可能成为瓶颈
- await:I/O 请求平均等待时间(毫秒),持续高于 10–20ms 需关注
- r/s 和 w/s:每秒读/写请求数,反映随机 I/O 负载
- rkB/s 和 wkB/s:每秒读/写字节数(KB),反映顺序吞吐量
- avgqu-sz:平均请求队列长度,大于 1 说明有排队现象
配合其他命令交叉验证
单靠 iostat 有时不够,可补充:
-
iotop:按进程查看实时磁盘 I/O 占用(需sudo iotop) -
vmstat 1:观察bi(block in)和bo(block out)字段,反映系统级块设备吞吐 -
cat /proc/diskstats:原始计数器数据,适合脚本解析或长期采样
注意设备命名与识别
输出中的设备名如 sda、nvme0n1 对应物理磁盘;带数字后缀的(如 sda1)是分区,通常更关注主设备(sda)整体表现。SSD 和 NVMe 设备延迟更低,await 常在 1ms 内,而传统 HDD 多在 5–15ms 区间属正常。











