BACKGROUND

Technical Field

This application relates to maximizing performance of a storage system.

Description of Related Art

Computer systems may include different resources used by one or more host processors. Resources and host processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage devices. These data storage systems may be coupled to one or more servers or host processors and provide storage services to each host processor. Multiple data storage systems from one or more different vendors may be connected and may provide common data storage for one or more host processors in a computer system.

A host processor may perform a variety of data processing tasks and operations using the data storage system. For example, a host processor may perform basic system I/O operations in connection with data requests, such as data read and write operations.

Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units, disk drives, and disk interface units. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data in the device. In order to facilitate sharing of the data on the device, additional software on the data storage systems may also be used.

Such a data storage system typically includes processing circuitry and a set of drives (disk drives are also referred to herein as simply “disks” or “drives”). In general, the processing circuitry performs load and store operations on the set of drives on behalf of the host devices. In certain data storage systems, the drives of the data storage system are distributed among one or more separate drive enclosures (disk drive enclosures are also referred to herein as “disk arrays” or “storage arrays”) and processing circuitry serves as a front-end to the drive enclosures. The processing circuitry presents the drive enclosures to the host device as a single, logical storage location and allows the host device to access the drives such that the individual drives and drive enclosures are transparent to the host device.

SUMMARY OF THE INVENTION

One aspect of the current technique is a method for maximizing performance of a storage system. The method includes identifying saturation points of the storage system for I/O requests of different types and sizes; determining, based on the saturation points, normalized tokens; associating unique numbers of normalized tokens with the I/O requests of different types and sizes; determining a number of normalized tokens for a queue depth limit of a storage device; allocating, from the queue depth limit, normalized tokens to each node in the storage device; and processing I/O requests according to the allocations of normalized tokens.

In some embodiments, the method includes identifying the saturation points for each type of storage device in the storage system. The method may include comparing the saturation point of a read request of the smallest size against the remaining saturation points. Normalized tokens may be allocated to each group of storage processors in each node

When a load of the storage system has exceeded a first threshold, I/O requests may be processed according to a system of prioritization. For example, high, medium, and low priority I/O requests may be serviced according to a predetermined ratio. The ratio may concern a predetermined ratio of requests or a predetermined ratio of available normalized tokens. In some embodiments, when the load of the storage system has exceeded a second threshold, solely I/O requests associated with a high priority may be processed.

In some embodiments, the normalized tokens are updated based on newly identified saturation points of the storage system for I/O requests of different types and sizes. The updating may occur in response to a determination regarding latency of the storage system, or a predetermined schedule for storage system re-evaluation.

Another aspect of the current technique is a system, with a processor, for maximizing its performance. The processor is configured to identify saturation points of the storage system for I/O requests of different types and sizes; determine, based on the saturation points, normalized tokens; associate unique numbers of normalized tokens with the I/O requests of different types and sizes; determine a number of normalized tokens for a queue depth limit of a storage device; allocate, from the queue depth limit, normalized tokens to each node in the storage device; and process I/O requests according to the allocations of normalized tokens. The processor may be configured to perform any other processes in conformance with the aspect of the current technique described above.

