摘要 |
An apparatus and method for dynamically tuning queue depths to provide improved storage subsystem throughput and resource utilization across a full range of I/O loads is described. The maximum allowable queue depth for a command queue is adjusted at predetermined cycle intervals on the basis of an I/O workload measured during the cycle. In one embodiment of the invention, the interval is a fixed system parameter, but in an alternative embodiment, the interval size is automatically adjusted to keep the rate of adjustment of the maximum allowable queue depth within a preferred range. In a preferred embodiment, the size of each I/O command is stored before it is sent to the device queue. Read, write and miscellaneous I/O commands may be queued and managed separately. After a predetermined number of commands have been stored, the predominant command size during the cycle interval is determined. The predominant command size is used to select a new maximum allowable queue depth, from a set of established values preferably selected so that, at least to a first order approximation, the maximum allowable queue depth is inversely proportional to the predominant command size. Preferably, this value is selected from a set of values which have been predetermined for all possible command sizes allowed for the system.
|