How to Calculate Queue Depth for Midrange Arrays

Document created by Jeff Maaks on Jun 26, 2013Last modified by Nick Gable on Jun 26, 2013
Version 3Show Document
  • View in full screen mode

How to calculate queue depth for midrange arrays to guarantee that you will never exceed queue capacity

How to perform queue depth calculation

How to set queue depth (Q-depth, QDepth, MAXTAGS)

 

[Performance] Queue-full occurs often(Port-xx,Connected host num.=xxx,Queue depth=512)

 

LUN management

Hitachi Thunder 9500™ V Series modular storage system (9500 V, 9580 V, 9585 V, 9570 V), DF600

Hitachi TagmaStore® Adaptable Modular Storage/Workgroup Modular Storage (AMS 200, 500, 1000 and WMS 1000), DF700

Hitachi Adaptable Modular Storage 2000 family (AMS 2000) (includes 2100, 2300, 2500, 2500DC), DF800

 

Fix :

For the Hitachi Thunder 9500™ V Series modular storage system (9500 V), Hitachi TagmaStore® Adaptable Modular Storage/Workgroup Modular Storage (AMS and WMS), and Hitachi Adaptable Modular Storage 2000 family (AMS 2000), you can calculate queue depth using the following formula to guarantee that you will never exceed queue capacity (keep in mind that maximum performance may be achieved at higher queue depth values):

  • Divide 512 by the number of LUNs. Divide again by the number of hosts, less than or equal to 32.

 

Note :

There are 512 queue slots. There is no problem with queue depth values higher than calculated above unless more than 512 total commands to the port are exceeded or 32 commands are exceeded for a LUN.  The formula above guarantees you will never exceed the queue capacity.  The maximum performance may be achieved at higher queue depth values. The value above is quite general and assumes all LUNs are online and available to all hosts.

 

In conclusion, avoid having more than 512 commands arrive at the port simultaneously and do not exceed 32 per LUN.

 

Multipathing rules of thumb for Active/Active configuration

 

For SAS drives:

 

Host Queue Depth settings need to be changed to only allow a Maximum QD of 32 to each. (SAS)

 

This means that if 1 x Server has 2 x HBAs with access to the LUN, then the Max QD = 16 per HBA to that LUN.
This means that if 2 x Servers have 2 x HBAs each with access to the LUN, then the Max QD = 8 per HBA to that LUN.
This means that if 4 x Servers have 2 x HBAs each with access to the LUN, then the Max QD = 4 per HBA to that LUN.

 


For SATA drives:

 

Host Queue Depth settings need to be changed to only allow a Maximum QD of 6 to each. (SATA)

 

This means that if 1 x Server has 2 x HBAs with access to the LUN, then the Max QD = 3 per HBA to that LUN.
This means that if 2 x Servers have 2 x HBAs each with access to the LUN, then the Max QD = 2 per HBA to that LUN (this will give a total queue of 8).
This means that if 4 x Servers have 2 x HBAs each with access to the LUN, then the Max QD = 1 per HBA to that LUN (this will give a total queue of 8).

* For recommendations on setting queue depth, please review the latest Host Install Guide for your host and array type.

* This equation does not apply to array-to-array configurations. Please see the related guide to configure externalized storage.

Attachments

    Outcomes