应监控/dev/mapper/xxx或/dev/dm-*等多路径聚合设备而非底层物理路径,因真实IO负载体现于逻辑层;用multipath -ll确认设备名后,执行iostat -xk 1 /dev/mapper/mpatha即可准确获取负载指标。

Linux 查看多路径存储设备的 IO 负载,关键在于让 iostat 正确识别并聚焦到 multipath 设备(如 /dev/mapper/xxx 或 /dev/dm-*),而不是底层物理路径(如 /dev/sdax)。因为多路径本质是将多条物理链路聚合为一个逻辑设备,真实负载应反映在聚合层,而非单条路径上。
确认多路径设备名并查看其 IO 统计
先查清系统中已激活的 multipath 设备:
- 运行
multipath -ll,找到类似mpatha (3600a0b8000c4e2100000000000000011) dm-2 IBM,2145的输出,记下设备别名(如mpatha)或设备节点(如/dev/mapper/mpatha或/dev/dm-2) - 用
ls -l /dev/mapper/确认软链接指向的实际设备号
然后直接对这个逻辑设备运行 iostat:
-
iostat -xk 1 /dev/mapper/mpatha—— 每秒刷新一次,只显示该 multipath 设备的扩展指标 -
iostat -xk 1 /dev/dm-2—— 如果更习惯用主次设备号,效果相同
避免误读:不监控底层路径
不要对 /dev/sda、/dev/sdb 等物理盘单独跑 iostat,否则看到的是单条链路的碎片化数据,无法反映整体负载:
- 底层路径的
%util可能都偏低(比如各 30%),但聚合设备的%util已达 95%,说明 I/O 请求正被多路径策略分散处理 - 底层路径的
await和svctm偏差大,受路径切换、故障切换影响,参考价值低 - 真正判断瓶颈,只看
/dev/mapper/xxx的%util > 80%和avgqu-sz > 1(SSD)或> 2(HDD)
结合 -p ALL 查看完整拓扑(谨慎使用)
若需同时观察 multipath 设备及其所有底层路径(用于排查路径异常),可用:
-
iostat -xk 1 -p ALL—— 注意:-p与-x可共存,但会输出大量行,需仔细区分设备名 - 输出中,
dm-2或mpatha是聚合层;sda、sdb等是物理路径 - 重点对比:聚合层
%util高 + 某条物理路径%util异常低/高/为 0,可能提示路径故障或负载不均
验证多路径状态是否影响 iostat 数据
确保 multipathd 正常运行,否则 iostat 可能无法正确关联设备:
- 检查服务:
systemctl status multipathd - 确认设备已映射:
ls /dev/mapper/ | grep -v control应有你的别名 - 如果 iostat 报错 “No such device”,可能是设备未就绪或名称拼写错误(注意大小写和下划线)


















