iostat -xdm 1 是实时监控磁盘吞吐与读写速率的核心命令:rmb/s、wmb/s 表示真实块设备吞吐,r_ios、w_ios 反映真实iops,需结合 avgrq-sz 交叉验证,警惕高 await、高 avgqu-sz 与低吞吐并存的物理瓶颈。

直接用 iostat -xdm 1 就能实时看磁盘吞吐量和读写速率,关键不是只盯单个数字,而是结合指标关系判断真实负载。
先装好再运行
iostat 属于 sysstat 包,没装就先装:
- CentOS/RHEL:
yum install -y sysstat - Debian/Ubuntu:
apt install -y sysstat
装完即可使用,新版默认启用数据收集,无需额外启动服务。
最实用的监控命令
iostat -xdm 1 是日常排查主力命令:
-
-x:开启扩展模式,显示真实 IOPS(
r_ios/w_ios)、吞吐(rMB/s/wMB/s)、平均等待时间(await)等关键字段 - -d:只显示磁盘设备,不混入 CPU 行,界面更干净
- -m:单位统一为 MB/s,比 KB/s 更直观,便于对比设备标称带宽
- 1:每秒刷新一次,方便观察动态趋势
若只关注某块盘(如 /dev/sdb),加设备名:iostat -xdm 1 /dev/sdb。
重点看哪些字段
吞吐量与读写速率的真实值来自以下字段:
- rMB/s 和 wMB/s:绕过 page cache、真正落到块设备的读写速率(单位 MB/s),可直接对标 SSD 或 NVMe 的标称吞吐
-
r_ios 和 w_ios:实际下发到设备的读写请求数(即真实 IOPS),比默认的
r/s和w/s更准——后者易被上层合并、重排失真 -
avgrq-sz:平均请求大小(扇区数),可用于交叉验证——
r_ios × avgrq-sz × 512 ≈ rMB/s × 1024 × 1024;若明显不等,说明有压缩、协议开销或队列调度干预
避免常见误读
别被表面数值带偏:
-
rkB/s和wkB/s是旧单位,未归一化,且不含请求计数,不适合做吞吐基准 -
r/s和w/s是逻辑层统计,常因合并失效,不能当真实 IOPS 用 -
%util不是“使用率”,只是设备忙的时间占比;NVMe 或多队列 SSD 即使 %util 达 95%+,只要await低、avgqu-sz合理,就是高效状态
真正要警惕的是:高 await + 高 avgqu-sz + 低 rMB/s/wMB/s,这往往指向物理瓶颈或 IO 模式异常(如大量小文件随机写)。











