VxVM的性能问题
本帖最后由 mike79 于 2011-12-30 14:29 编辑环境是p650+AIX6106+VxVM5.1SP1RP1+2台2Gbps SAN交换机+CX600。p650的2块2Gbps HBA卡连接2台SAN交换机,CX600的每个控制器上各有2个2Gbps端口分别连接2台SAN交换机
CX600建了16个RAID5,每个RAID5中有8块磁盘。通过vxdmp聚合后,p650就识别到16个磁盘,每个磁盘有2条路径,也就是有2个hdisk。这些都很正常。
通过VxVM建立dg和volume,volume做条带化,跨4块磁盘,stripe size是2M。dd测试发现写volume很慢,才40MBPS。在排除了SAN交换机和存储控制器以及RAID的性能瓶颈之后,问题集中到VxVM设置上。
调整了vxio的vol_maxio和vol_iomemmxplsz参数,分别调整为2M和40M,没有效果。
将所有磁盘退出VxVM控制,建立LVM vg和lv。lv同样做条带化,跨4块磁盘,stripe size是2M。dd测试发现写lv可以将近100MBPS。
用LVM的一个问题是没有多路径。如果安装PowerPath的话,担心和VxVM的DMP有冲突,也不想卸载VxVM。看到DMP支持LVM,就修改dmp_native_support参数为on,果然可以使用DMP聚合后的设备名建立vg。
在vg中建立条带化的LV,重新测试速度,还是可以到100MBPS。
至此,可以确定性能问题应该是在VxVM层面。但是不知道问题在哪里。 建立的DG(VG)是用同样的LUN吗,如果不一样,测试结果难免产生差异性,存储底层LUN的选择也难免对IO性能产生影响! 这得看具体的dd命令了 一样的LUN,一样的dd命令。
就是用相同的一组LUN分两次测试,一次建立dg,另一次建立vg。甚至dg上建立volume和vg上建立lv都是类似的,条带化跨4个LUN,stripe size为2M dd的io size指定的多大,读写双方是否有文件系统 iosize测试过8M/16M/32M,VxVM基本维持在40MBPS,LVM维持在100MBPS左右,都没有很大变化。
测试的一方使用裸设备,另一方使用/dev/zero或者/dev/null。 mike79 发表于 2012-01-01 13:08 static/image/common/back.gif
iosize测试过8M/16M/32M,VxVM基本维持在40MBPS,LVM维持在100MBPS左右,都没有很大变化。
测试的一方使用 ...
你的io size 那么大,但vxvm最大的限制你设成了2mb, 当io 落到vxvm层,都被分割成2mb的,也就是说vxvm以2m,2m,2m,2m这么写,你的stripe unit 也是2m,那对于dd这个单线程的玩意,这其实和非stripe 没区别了,lvm 没有大小限制,每个io 下去是8m, 8m,8m,8m,每次都利用到4个盘一起干活,当然快了
你把dd的bs 用2m,保证lvm也慢下来 wdbj 发表于 2012-01-01 14:12 static/image/common/back.gif
lvm 没有大小限制,每个io 下去是8m, 8m,8m,8m,每次都利用到4个盘一起干活,当然快了
这个分析我不太认同。LVM的IO有限制的,就是VG的LTG size属性,往该VG的PV中写入数据时,IO Size不会超过这个值。而这个值实际上是PV的属性决定的,VG只是在所有的PV中选择最小值。在VxVM测试时候,简单点用topas看的话,也可以看到TPS差不多就是40,那也就是1MB/IO。所以在这点上VxVM和LVM相差不大。
另外我也用bs=2m测试了,LVM中还是可以到100MBPS,TPS和bs=32m的测试也接近。 本帖最后由 wdbj 于 2012-01-01 14:37 编辑
mike79 发表于 2012-01-01 14:26 static/image/common/back.gif
这个分析我不太认同。LVM的IO有限制的,就是VG的LTG size属性,往该VG的PV中写入数据时,IO Size不会超过 ...
你确定你用bs 2m测过?那你试试把vxvm 的stripe unit 改成512k试试吧,ddbs还用2m wdbj 发表于 2012-01-01 14:34 static/image/common/back.gif
你确定你用bs 2m测过?那你试试把vxvm 的stripe unit 改成512k试试吧
我刚测过用bs=2m。现在上面已经有数据了,就不折腾它了。
PS 现在还这么热诚的回复技术帖子的,莫非也是在哪做年度处理之类的兄弟?