The operating system has the ability to enforce limits on the number of I/O requests that can be outstanding from the SCSI adapter to a given SCSI bus or disk drive. These limits are intended to exploit the hardware's ability to handle multiple requests while ensuring that the seek-optimization algorithms in the device drivers are able to operate effectively.
For non-IBM devices, it is sometimes appropriate to modify the default queue-limit values that have been chosen to handle the worst possible case. The following sections describe situations in which the defaults should be changed and the recommended new values.
For IBM disk drives, the default number of requests that can be outstanding at any given time is 3 (8 for SSA). This value is based on complex performance considerations, and no direct interface is provided for changing it. The default hardware queue depth for non-IBM disk drives is 1. If a specific non-IBM disk drive does have the ability to buffer multiple requests, the system's description of that device should be changed accordingly.
As an example, the default characteristics of a non-IBM disk drive are displayed with the lsattr command, as follows:
# lsattr -D -c disk -s scsi -t osdisk pvid none Physical volume identifier False clr_q no Device CLEARS its Queue on error q_err yes Use QERR bit q_type none Queuing TYPE queue_depth 1 Queue DEPTH reassign_to 120 REASSIGN time out value rw_timeout 30 READ/WRITE time out value start_timeout 60 START unit time out value
You can use SMIT (the fast path is smitty chgdsk) or the chdev command to change these parameters. For example, if your system contained a non-IBM SCSI disk drive hdisk5, the following command enables queuing for that device and sets its queue depth to 3:
# chdev -l hdisk5 -a q_type=simple -a queue_depth=3
A disk array appears to the operating system as a single, rather large, disk drive. A non-IBM disk array, like a non-IBM disk drive, is of class disk, subclass SCSI, type osdisk (which stands for "Other SCSI Disk Drive"). Because a disk array actually contains a number of physical disk drives, each of which can handle multiple requests, the queue depth for the disk array device has to be set to a value high enough to allow efficient use of all of the physical devices. For example, if hdisk7 were an eight-disk non-IBM disk array, an appropriate change would be as follows:
# chdev -l hdisk7 -a q_type=simple -a queue_depth=24
If the disk array is attached through a SCSI-2 Fast/Wide SCSI adapter bus, it may also be necessary to change the outstanding-request limit for that bus.