dmsetup 本身不监控 i/o 负载,仅管理 device-mapper 设备;需先用 dmsetup ls/info/dependencies 定位多路径设备(如 /dev/mapper/mpatha),再用 iostat -dxm 监控其真实 i/o 指标(r/s、%util、await 等)。

dmsetup 本身不直接监控 I/O 负载,它是一个设备映射器的管理工具,用于创建、查询和控制 device-mapper 设备(如 multipath、LVM、dm-crypt),但不具备实时 I/O 统计功能。
要监控多路径存储的 I/O 负载,需结合 dmsetup 的设备识别能力与真正的 I/O 监控工具协同使用。核心思路是:先用 dmsetup 定位多路径设备(如 /dev/dm-0 或 /dev/mapper/mpatha),再用 iostat 等工具对其做负载观测。
确认多路径设备在 device-mapper 中的映射关系
多路径设备由 `multipathd` 创建,底层基于 device-mapper,最终表现为 `/dev/dm-X` 或 `/dev/mapper/xxx`。用以下命令快速定位:-
列出所有 active 的 device-mapper 设备,并过滤含
mpath或multipath字样的:dmsetup ls --target multipath
正常输出类似:
mpatha (253:0) mpathb (253:1)
-
查看某个多路径设备的详细信息(确认是否活跃、有无错误):
dmsetup info -c mpatha
关注字段:
-
Open:非 0 表示被进程占用(可能影响 I/O) -
State:应为ACTIVE;若为SUSPENDED,需dmsetup resume mpatha -
Major,Minor:对应/dev/dm-0,可用于 iostat 精确监控
-
-
查看设备依赖(验证是否真正指向后端路径):
dmsetup deps -o devname mpatha
输出类似:
2 dependencies : (sdb) (sdc)
表明该多路径设备由
/dev/sdb和/dev/sdc两条物理路径组成。
linux-performance-analyzer下载Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
用 iostat 监控多路径设备的实时 I/O
`iostat` 是标准且最实用的 I/O 负载监控工具,支持按 device-mapper 设备名或主次设备号统计:-
监控指定多路径设备(推荐用
/dev/mapper/下的易读名):iostat -dxm 2 /dev/mapper/mpatha
参数说明:
-
-x:显示扩展统计(关键指标如%util,await,svctm,r/s,w/s) -
-d:仅磁盘设备(不显示 CPU) -
-m:以 MB/s 为单位 -
2:每 2 秒刷新一次
-
-
若
/dev/mapper/名称不可用(如未创建软链接),可用/dev/dm-X:iostat -dxm 2 /dev/dm-0
-
观察重点指标:
-
r/s+w/s:每秒读写请求数 → 反映 I/O 密集度 -
rkB/s+wkB/s:吞吐量 → 判断带宽是否瓶颈 -
await:I/O 平均等待时间(毫秒)→ 持续 > 20ms 需关注 -
%util:设备忙时百分比 → 接近 100% 表示饱和(注意:对多路径设备,此值反映聚合后逻辑设备整体利用率)
-
辅助排查:关联路径状态与 I/O 异常
当发现多路径设备 I/O 延迟高或丢包时,需检查底层路径健康状况:-
查看 multipath 当前路径状态:
multipath -ll mpatha
正常应显示类似:
mpatha (3600a0b8000a12345678901234567890d) dm-0 vendor,product size=10G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw `-+- policy='service-time 0' prio=50 status=active |- 0:0:0:0 sdb 8:16 active ready running `- 1:0:0:0 sdc 8:32 active ready running
若某路径显示
failed或faulty,则iostat中该设备的延迟可能突增,且%util可能异常偏高(因流量被迫集中到剩余路径)。配合
multipathd show topology或日志journalctl -u multipathd -n 50可追溯故障切换事件。










