how to check Qlogic HBA adapter Queue depth in windows 2008 r2? RRS feed

  • Question

  • 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 ..

       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:
       3. Double click on
       4. If the string "qd=" does not exist, append to end of 
       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.
    Wednesday, February 22, 2012 2:19 PM

All replies

  • Install 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

    Wednesday, March 14, 2012 9:00 AM
  • Thank you Shani!

    Is execution Throttle and Queue depth both are same?

    Sunil Kumar Devangam

    Thursday, March 15, 2012 1:47 PM
  • For Qlogic execution Throttle is the term for Queue depth and for Emulex adapters it is termed as queue depth

    Thank you, Shani

    Friday, March 16, 2012 5:08 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.?

    thank you

    Monday, March 19, 2012 8:47 AM
  • 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

    Monday, March 19, 2012 4:23 PM
  • 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
    Tuesday, March 20, 2012 8:13 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.


    Friday, May 18, 2012 2:48 AM
  • 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.

    Tuesday, May 29, 2012 6:41 PM
  • Ho to set Queue Depth in Broadcom BCM5709C NetXtreme II GigE Adaptor.

    I have search a lot for this ,Queue depth is easily set on 10gig adaptor with any OEM but how to set same on 1 Gig Network adaptor.

    Actually we are facing some performance issue and need to set QD =32 on 1gig Broadcom BCM5709C NetXtreme  adaptor.

    We are using Microsoft iscsi initiator for the same with 1 gig iscsi traffic.

    Please help.


    Monday, December 28, 2015 9:55 AM
  • I dont see and option to modify the queue depth in a converged adapter settings.

    Broadcom user guide never mentioned about queue depth.

    Thank you, Shani

    Friday, January 8, 2016 10:56 AM