By Jim Bahn, Senior Director, Product Marketing
We’ve learned that sub-optimal HBA Queue Depths can impact response time by a factor of 10. This shouldn’t be surprising, so let me explain a little more.
Queue Depth on an array is the physical limit of exchanges that can be open on a storage port at any one time. The Queue Depth setting on an HBA specifies how many exchanges can be sent to a LUN at one time. In order to prevent a storage port from being over-run, it’s important to consider both the number of servers that are connecting to a storage port as well as the number of LUN’s available on that port. By knowing the number of exchanges that are pending at any one time it is possible to manage the storage Queue Depths.
In order to properly manage the storage Queue Depths, you should consider both the configuration settings at the host bus adapter (HBA) in a server and the physical limits on the storage arrays. It’s important to determine what the Queue Depth limits are for each storage array. All of the HBA’s that access a storage port must be configured with this limit in mind.
The default value for the HBA can vary a great deal by manufacturer and version, and are often set higher than what is optimal for most environments. If you set the queue depths too low on the HBA it could significantly impair the HBA’s performance and lead to under utilization of the capacity of the storage port (i.e. underutilizing storage resources). This occurs both because the network will be underutilized and the storage system will not be able to take advantage of its caching and serialization algorithms that greatly improve performance. Queue Depth settings on HBA’s can also be used to throttle servers so that the most critical servers are allowed greater access to the necessary storage and network bandwidth.
Most environments, before customers install VirtualWisdom-based hardware instrumentation, have Queue Depth settings that are higher than optimal, often resulting in poor application performance and even loss or corruption of data. Unless storage ports have been dedicated to a server, the optimal Queue Depth settings can be in the range of 2 to 8. The industry defaults tend to be 32-256, with old operating systems often set at 256. VirtualWisdom is the only product that can measure real-time aggregated queue depth (regardless of storage vendor or device) to ensure storage ports are optimized for maximum application health, performance, and SAN efficiency. And our Queue Solver Analytic (screen shot below) takes the real-world data from your existing array and gives you your optimal settings. No Ph.D. required.
VirtualWisdom Queue Solver screen shot