Wednesday, February 22, 2012 2:19 PM
how to check Qlogic HBA adapter Queue depth in windows 2008 r2?
Qlogic model is QMH2462..
i tried checking in below reg entry..but not sure in windows 2008 it's default value is 32..please help me to understand ..
qd Per Microsoft DDK, Microsoft storport.sys maintains a device queue for each device it controls and the storport interface allows the underlying miniport to set the maximum queue depth of the device queue. The maximum queue depth value, as was told by Microsoft port driver developer, is 254. Qlogic sets the default value to 32. Please note that the Microsoft storport.sys driver has total control of the queue depth of the device queue, qlogic miniport merely sets the value using the predefined storport interface call and procedure as informed by Microsoft. Please use the following procedure to change the qd parameter: 1. Click on "Start", select "Run", and open the REGEDIT/REGEDT32 program. 2. Select HKEY_LOCAL_MACHINE and follow the tree structure down to the QLogic driver as follows: HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services Ql2300 Parameters Device 3. Double click on DriverParameter:REG_SZ:qd=32 4. If the string "qd=" does not exist, append to end of string ;qd=32 5. Enter a value upto 254 (0xFE). The default value is 32 (0x20). 6. Click OK. 7. Exit the Registry Editor, then shutdown and reboot the system. ======================================================================
- Edited by SunilDevangam Wednesday, February 22, 2012 2:21 PM
Wednesday, March 14, 2012 9:00 AMInstall Qlogic SANSurfer software in the server
In the HBA port# Click parameter tab
Select Advance HBA parameters
You can see the queue depth in the Execution throttle
Thank you, Shani
Thursday, March 15, 2012 1:47 PM
Thank you Shani!
Is execution Throttle and Queue depth both are same?
Sunil Kumar Devangam
Friday, March 16, 2012 5:08 AMFor Qlogic execution Throttle is the term for Queue depth and for Emulex adapters it is termed as queue depth
Thank you, Shani
Monday, March 19, 2012 8:47 AM
Hi Shani, Thanks a lot for your confirmation.
I see Queue depth for Qlogic HBA is 16 by default and storage team recommends to increase queue depth..could you please tell me how much we need to incerase..based on what parameters? i believe if we incresase at only server HBA level will not be useful, unless we made the settings change at storage controller side as wel.. could plese elaborate more on this.?
Monday, March 19, 2012 4:23 PM
By default a QLogic HBA Execution Throttleis set to 16. This setting specifies the maximum number of outstanding (SCSI / Fiber Channel) commands that can execute on any single Target port(WWPN). When a Target port’sExecution Throttleis reached, the host computer will not issue any new commands until one of the current commands finishes executing.
To increase the number of outstanding (SCSI / Fiber Channel) commands to the Target port,increase the Execution Throttle. However, increasing the Execution Throttlebeyond what the Target portmay handle will cause SCSI timeouts to occur.
According to QLogic it is considered a Best Practiceto optimize performance for all devices that may communicate with the Target port. To do this QLogic recommends that you divide the Target port'sMaximum Outstanding Commands (or Queue) by the number of host ports (Initiators) that access the Target port. This type of computation is used to determine the Target portfan-in ratio as well.
(Maximum Storage Port Command Queue) / (Host Ports) = Execution Throttle
- Proposed As Answer by prosper edmund Monday, March 19, 2012 4:23 PM
Tuesday, March 20, 2012 8:13 AM
Ideally Storage team has to tell what is the QD that needs to be set on the HBA based on how many LUNS are published on a particular port
Queue depth is the number of I/O operations that can run in parallel on a device
Calculating the queue depth\Execution Throttle value
To prevent flooding the target port queue depth, the result of the combination of number of host paths + execution throttle value + number of presented LUNs through the host port must be less than the target port queue depth. In short T => P * q * L
T = Target Port Queue Depth
P = Paths connected to the target port
Q = Queue depth
L = number of LUN presented to the host through this port
Your Storage admins can give you more info on the nature of infrastructure you have
Thank you, Shani
- Proposed As Answer by Tim Conquest Friday, May 18, 2012 2:39 AM
Friday, May 18, 2012 2:48 AM
There are some caveats around queue depth it seems:
Increasing the hba depth will have a negative impact on your performance unless your OS io queue is constantly high.
Qlogic Execution Throttle
Qlogic has a firmware setting called „Execution Throttle” which specifies the maximum number of simultaneous commands the adapter will send. The default value is 16, increasing the value above 64 has little to no effect, because the maximum parallel execution of SCSI operations is 64.
Tuesday, May 29, 2012 6:41 PM
I believe finding the optimal queue depth setting is a combination of art and science. Every environment is unique. The default queue depth setting is simply the default starting point. Ideally, one would measure and record the performance of the individual HBA as well as the overall performance of the fibre channel storage controller for a full week before making any adjustments. The issue is fibre channel HBA's are usually members of a storage network, thus, one must consider the good of the many versus the good of one. Under certain conditions one server with maximum queue depth settings could saturate the storage controller and cause many other servers HBA's to have increased latency and timeout. In reality sometimes a queue depth of 1 is the optimal setting, especially if round robin multipath is enabled and there are many servers accessing a shared LUN. A queue depth of 1 only allows one I/O to the storage controller then the next server will be allowed one I/O etc. The result is each server has a lower I/O rate but the storage controller and the overall storage network runs more smoothly. On the other hand, if you only have one server then the maximum depth of 64 would be optimal.
One of the most important storage network tuning parameters is data transfer size. It is critical that the data transfer size be the same or smaller than the storage controllers block size. Most storage network controllers have a default block size of 64KB or 128KB. The Qlogic HBA driver has a default size of 512KB. In the first case the storage controller would receive the 512KB block in its buffer, then segment it into 8 64KB blocks, then write them to disk, in the second case, the storage controller would buffer the 512KB, then segment it into 4 128KB blocks, then write them to disk. The optimal setting is to match HBA driver block size to the size of the storage controllers block size.