HP-UX 11i September 2002 Release Notes

Process, Threads, Memory, and Kernel Parameters
SCSI Queue Depth Management
Chapter 10
202
SCSI Queue Depth Management
new at 11i
original release
If you have multiple active paths to a SCSI device (LUN), you might need to manage
your device queue depths to maximize the devices performance. This is particularly true
with dynamic multi-pathing applicationssuch as EMCs PowerPath
applicationwhich allow all multiple paths to a LUN to be in use simultaneously. In
such cases, you should check the queue depth specified on each path. If it is set to a value
that is more appropriate for an environment where only one path is active at any point
in time, you might need to lower the value.
Even in single-pathing or static multi-pathing environments, management of device
queue depths can be important to maximize the performance and throughput of the
storage device.
A single hard-coded default queue depth of 8 existed originally on 11.0 and could be
changed only one device at a time via an ioctl to the device. But, it does not meet the
needs of all devices and configurations. So, HP-UX 11i contains the following
enhancements to the SCSI device queue depth management:
1. A dynamic tunable called scsi_max_qdepth has been added. This tunable allows
you to set the default queue depth that will apply to devices that have not been
individually set via the SIOC_SET_LUN_LIMITS ioctl or scsictl commands.
This tunable is dynamic, which means that it can be changed and will be applied
without having to reboot the system.
2. On 11.0, the queue depth could be changed on a per-device basis via the
SIOC_SET_LUN_LIMITS ioctl or the scsictl command. However, the settings
were not persistent across device opens and closes. That is, on 11.0, the queue depth
setting on a device would disappear on the last close of the device and would go back
to the system default of 8 when the device was re-opened. On 11i, the per-device
queue depth settings will persist across opens and closes. This allows you to set the
queue depth only once during or after boot up to maintain a desired value.
The 11i scsi_max_qdepth tunable can be changed or read via the kmtune command. See
the kmtune (1M) manpage for details. The only change in the behavior of the per-device
queue depth settings is the persistence across device opens and closes, as described
above. Otherwise, these can be set or read in the same way as they could on 11.0 via the
SIOC_SET_LUN_LIMITS and SIOC_GET_LUN_LIMITS ioctl command or the
scsictl command.