Linux多路径IO流量负载和单链路负载压测
Linux Multipath的IO流量多链路负载和单链路负载压测
再linux下,对于udev和multipath均能做到自定义并持久化设备名,其中udev还能做到更改设备权限。
而multipath也能做到持久化设备名,但无法更改设备权限,但是multipath能够实现更多的功能,比如IO流量负载功能。
测试
情况1 单链路IO流量负载
新增一个存储挂载的磁盘设置,共4条链路,在linux上表现为多了4块盘,查询wwid可以发现4块盘实际上对应的是同一个。
[root@oracledb1 ~]# ll /dev/sda[i,j,k,h] brw-rw---- 1 root disk 66, 16 Nov 10 17:13 /dev/sdah brw-rw---- 1 root disk 66, 32 Nov 10 17:13 /dev/sdai brw-rw---- 1 root disk 66, 48 Nov 10 17:14 /dev/sdaj brw-rw---- 1 root disk 66, 64 Nov 10 17:14 /dev/sdak [root@oracledb1 ~]# scsi_id --whitelisted /dev/sdah 36c4b8b41004840d411a7bd4200000011 [root@oracledb1 ~]# scsi_id --whitelisted /dev/sdai 36c4b8b41004840d411a7bd4200000011 [root@oracledb1 ~]# scsi_id --whitelisted /dev/sdaj 36c4b8b41004840d411a7bd4200000011 [root@oracledb1 ~]# scsi_id --whitelisted /dev/sdak 36c4b8b41004840d411a7bd4200000011
修改/etc/multipath.conf,持久化新磁盘并设置单链路IO流量负载,新增配置如下:
multipath {
wwid 36c4b8b41004840d411a7bd4200000011
alias disktest
}
重新加载配置,https://www.cnblogs.com/PiscesCanon/p/17829710.html
[root@oracledb1 ~]# multipath -r [root@oracledb1 ~]# multipath -ll ...... disktest (36c4b8b41004840d411a7bd4200000011) dm-8 HUAWEI,XSG1 size=20G features='0' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=1 status=active | `- 1:0:0:9 sdah 66:16 active ready running |-+- policy='round-robin 0' prio=1 status=enabled | `- 1:0:2:9 sdai 66:32 active ready running |-+- policy='round-robin 0' prio=1 status=enabled | `- 2:0:0:9 sdaj 66:48 active ready running `-+- policy='round-robin 0' prio=1 status=enabled `- 2:0:2:9 sdak 66:64 active ready running
之后进行IO压测。详情见“IO测试”。
情况2 多链路IO流量负载
修改/etc/multipath.conf并重载:
multipath { wwid 36c4b8b41004840d411a7bd4200000011 alias disktest path_grouping_policy multibus path_checker tur path_selector "round-robin 0" } [root@oracledb1 ~]# multipath -r [root@oracledb1 ~]# multipath -ll ...... reload: disktest (36c4b8b41004840d411a7bd4200000011) undef HUAWEI,XSG1 size=20G features='0' hwhandler='0' wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 1:0:0:9 sdah 66:16 active ready running |- 1:0:2:9 sdai 66:32 active ready running |- 2:0:0:9 sdaj 66:48 active ready running `- 2:0:2:9 sdak 66:64 active ready running
之后进行IO压测。详情见“IO测试”。
IO测试
只做写测试。
情况1和情况2测试均分别使用:
- dd压测,不经过缓存
顺序写IO测试语句:time dd if=/dev/zero of=/dev/mapper/disktest bs=8k count=300000 oflag=direct - fio工具进行随机写IO测试。
随机写IO测试语句:fio -filename=/dev/mapper/disktest -direct=1 -iodepth 32 -rw=randwrite -ioengine=libaio -bs=8k -numjobs=32 -runtime=180 -group_reporting -name=randwrite -size=5G
情况1和情况2
实际线程数不同,bs不同带来的结果也可能不同。并发数量越大,多链路IO流量负载的优势越大。
单链路的iostat:
avg-cpu: %user %nice %system %iowait %steal %idle 0.75 0.00 0.53 1.19 0.00 97.53 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sdah 0.00 0.00 0.00 3284.00 0.00 26272.00 16.00 0.97 0.30 0.30 97.20 sdai 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sdaj 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sdak 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
多链路的iostat:
avg-cpu: %user %nice %system %iowait %steal %idle 0.18 0.00 0.47 1.30 0.00 98.05 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sdah 0.00 0.00 0.00 927.00 0.00 7416.00 16.00 0.32 0.35 0.35 32.20 sdai 0.00 0.00 0.00 926.00 0.00 7408.00 16.00 0.21 0.23 0.23 21.40 sdaj 0.00 0.00 0.00 926.00 0.00 7408.00 16.00 0.18 0.20 0.20 18.50 sdak 0.00 0.00 1.00 927.00 4.00 7416.00 15.99 0.26 0.28 0.28 26.40
至此。
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?