未解决
此帖子已超过 5 年
2.1K 消息
0
2330
Windows设置Queue Depth的方法
Windows设置Queue Depth的方法
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese
介绍
Queue Depth设置阀值决定了HBA端口同时能流入到SAN最大的I/O的数量。它的设置直接影响到前端应用的存储性能,例如对于典型的关系数据库应用,如果Queue Depth设置过低,则应用的I/O吞吐量则会受到影响。如果这个值设置得过大,则单台服务器可能会影响到整个SAN网络的性能表现。设置Queue Depth需要根据不同的应用于性能要求综合考虑决定。本文描述Windows平台上对于QLOGIC和EMULEX两种HBA设置Queue Depth的方法。
更多信息
Queue Depth(QD)和Execution Throttle(ET):
设置Queue Depth之前,需要先提到两个概念。Queue Depth(QD)和Execution Throttle(ET)。
Queue Depth是Windows平台上存储驱动(Storport)的是一个参数,用来定义单个LUN上的需处理的I/O数量。Windows对于这个值默认是20,最大可以调整到254。
Execution Throttle是HBA的参数,用来定义每个端口上最大的命令执行数目。当特定的端口达到执行阀值的时候,新的命令就必须等待,直到当前的命令完成以后才能执行。当然,也有机制决定,命令可以通过其他的端口来执行,如果其余的端口还没有达到执行阀值的话。Execution Throttle的默认值是:8GB为65535,4GB为256。
Queue Depth在初始化过程中,它的值通常会在加载驱动的时候会根据Execution Throttle的值来决定,实际的值则通过HBA STOR Miniport Device驱动来提交给操作系统存储驱动来执行。
对于8GB的HBA,默认的Execution Throttle值为65535,Queue Depth值为254。决定Queue Depth值的算法是,如果Execution Throttle值在1-253 的范围内,则Queue Throttle的值为1-253,如果Execution Throttle的值超过253,则Queue Depth的值为254。
对于4GB的HBA,默认的Execution Throttle值为256,Queue Depth值为254。决定Queue Depth值算法和8GB HBA一样,如果Execution Throttle值在1-253 的范围内,则Queue Throttle的值为1-253,如果Execution Throttle的值超过253,则Queue Depth的值为254。
Queue Depth的设置方法:
对于QLOGIC的HBA,如果HBA的驱动版本是9.1.2.16或者更老的版本,在以下的注册表位置添加Queue Depth的值。
HKLM\System\CurrentControlSet\Services\QL2300\Parameters\Device\QD
注册表值设置的范围可以从0到254。如果注册表中这个值没有存在,对于QLOGIC HBA的驱动9.1.2.16或者更老的版本,则默认值值32. 如果对于9.1.2.16以后的版本,这个值将不会起作用。然而,9.1.8.25和之后的版本,QD的注册表设置则被重新编码,由于QLOGIC HBA会根据ET的参数来配置QD的值,而Windows操作系统对Queue Depth的控制完全是有storport.sys驱动来进行的。QLOGIC HBA驱动则仅仅是通过Windows的预定义的storport驱动来接口来配置QD的值。所以在9.1.2.16以后的驱动版本中,QD的值可以根据上文中描述的计算方法计算得出。
对于EMULEX HBA,Queue Depth和Queue Target两个值可以通过使用LPUTILNT、Hbanyware或者是OneCommand管理工具来更改。Queue Depth的值定义单个LUN中支持的最大命令队列,它值是0-254范围内,EMC的环境中默认是32。Queue Target则是决定了Queue Depth是应用到LUN还是应用到TARGET。设置为0则是以单个LUN来计算,设置为1则是按照TARGET来计算。(TARGET是SCSI命令的目标地址,通常LUN和TARGET是多对一的关系)
参考
emc209302 How do I set queue depth in Windows
应用于
Host adapter: QLogic
Host adapter: Emulex
OS: Microsoft Windows 2003
OS: Microsoft Windows Server 2008