试图在我们的HP服务器中使用Qlogic从3 3PAR中挤出最优的性能。我们在CentOS5.5上运行最新的更新/内核。
有人能给出有用的建议或调优来获得最大随机IOPS吗?
现在,我们徘徊在290随机IOPS,并相信这个数字应该更高。
发布于 2012-03-29 17:06:44
我也做过类似的设计,但是你的问题缺乏一些重要的信息。下面是我要看的东西列表,以便从您的设置中挤出最大的性能。
块IO路径中有几个层,您需要分别查看这些层。我喜欢从底部开始,然后按我的方式往上爬。
从操作系统到SAN的基本层如下:
生物-BLock IO单元从申请提交的请求。由于您讨论的是DB服务器,此请求的大小可能是db使用的页面大小的多倍。(收集一些iostat数据,查看每个设备的平均请求大小)
设备Mapper / Multipath (/dev/dm-*)提交给多路径创建的虚拟设备的-BIO (如果您使用的是多路径创建的虚拟设备)?虚拟设备层的->IO调度程序根据读取或写入BIO进行决策,或者将请求合并到现有队列中,或者将请求添加到新队列(更多的逻辑发生在这里,但超出此范围) ->Since设备由多路径管理,如何将BIO分发到底层设备的路由决定可以在/etc/Multipath中找到。config ->中有可调的参数,这些参数可以改变BIO单元在路径间的分布方式。
构成虚拟设备/dev/sd* ->Once BIO的底层物理路径被传递到这些底层设备,在这里->more决策取决于队列选项->BIO传递给HBA
HBA -HBA (qlogic)有一个执行节流阀,表示在拒绝新请求之前,该卡能够在飞行中拥有x个BIO数。
SAN ->Once BIO被传递给SAN,您将失去对它的队列和决策的控制。
由于您专门询问了您的HBA,我会查看您的HBA执行节流阀,并检查它设置为什么。您可以通过关注繁忙的列来查看是否达到了最大值:
cat /proc/scsi/sg/device_hdr /proc/scsi/sg/devices接下来,我将通过收集iostat和vmstat数据来分析系统工作负载。然后,我将尝试使用multipath.conf选项、队列sysfs选项、文件系统选项和IO调度器选项,以查看对每个层的更改是否会提高块IO性能。记住一次只做1次更改,在收集数据时每次至少运行3次测试。
https://serverfault.com/questions/257520
复制相似问题