3.5.1 Matrix Server Administration Guide
Chapter 18: SAN Maintenance 304
Copyright © 1999-2007 PolyServe, Inc. All rights reserved.
Host Bus Adapters (HBAs)
Reduce the HBA Queue Depth
The HBA queue depth is the maximum number of outstanding I/O
requests that the HBA can hold while it is waiting for responses from the
LUNs on the storage array. If the HBA is sending more I/O requests than
the array queue can handle, you may see I/O performance problems such
as the following:
• “Recovered I/O” error events in /var/log/messages
• Sluggish I/O in Await or SVCTM as measured in iostat -x 5
• Reports of “DLM lock stalls” for locks over filesystem I/O
You may be able to eliminate these problems by changing or adapting
your workload. For example, you might move jobs from a heavily loaded
node to a less busy node or reschedule certain activities.
If you are unable to change the workload, try reducing the HBA queue
depth, as described below.
NOTE: This procedure should be used only if Matrix Server controls the
loading of the HBA driver. If you are using third-party MPIO
software such as EMC PowerPath, HDLM, or IBM RDAC in which
the HBA driver load is controlled by the initrd image, do not use
this procedure. Instead, changes to the HBA queue depth should
be made only under the advice and direction of the third-party
MPIO vendor.
Determine a Value for the HBA Queue Depth
Consult the hardware vendor for your array to determine the number of
supported SCSI command tags per port/LUN. Then divide that number
by the number of servers in the cluster. For example, if the storage queue
depth is 32 and there are eight servers in the cluster, you would use 4 as
the HBA queue depth.
If you are unable to determine the queue depth for the array, try setting
the HBA queue depth to 4.