| US 7,519,725 B2 | ||
| System and method for utilizing informed throttling to guarantee quality of service to I/O streams | ||
| Guillermo Alejandro Alvarez, San Jose, Calif. (US); David Darden Chambliss, Morgan Hill, Calif. (US); Divyesh Jadav, San Jose, Calif. (US); Tzongyu Paul Lee, Campbell, Calif. (US); Ramachandran Gopalakrishna Menon, Sunnyvale, Calif. (US); Prashant Pandey, Fremont, Calif. (US); and Jian Xu, San Jose, Calif. (US) | ||
| Assigned to International Business Machines Corporation, Armonk, N.Y. (US) | ||
| Filed on May 23, 2003, as Appl. No. 10/444,712. | ||
| Prior Publication US 2004/0236846 A1, Nov. 25, 2004 | ||
| Int. Cl. G06F 15/16 (2006.01); G01R 31/08 (2006.01) | ||
| U.S. Cl. 709—232 [709/234; 370/229; 370/230.1] | 32 Claims |

| 1. A processor-implemented method of utilizing informed throttling to guarantee quality of service to a plurality of clients,
comprising:
for each client comparing a performance level received by the client to a corresponding contracted service level;
based on the compared performance level, determining if the client qualifies as a victim whose received performance level
is less than the corresponding contracted service level, wherein determining if the client qualifies as a victim, further
comprises:
classifying the client into one of plurality of heuristic-dependent categories, including a QoS_Met category indicative that
the client's demand does not exceed the corresponding contracted service level, and that the client's demand is properly met,
QoS_Fail category indicative that the client's demand does not exceed the corresponding contracted service level, and that
the client's demand improperly not met, a QoS_Exempt category indicative that the client's demand exceeds the corresponding
contracted service level, and that the client's is properly not met, and a QoS_Excess category indicative that the client's
demand exceeds the corresponding contracted service level, and that the client's demand is properly met;
each of the heuristic-dependent categories dependent upon a demand by the client, a preexisting specification of a quality
of service specified by the client, and a current performance experienced by the client; and
computing, for each of a plurality of QoS groups having a common service level agreement (SLA): a delivery summary of an observed
average service time divided by an agreed upon maximum service time; a load summary of an observed number of input/outputs
(I/Os) per second, divided by an agreed upon maximum number of I/Os per second; and a compound summary comprising a composite
metric reflective of an extent to which the QoS group is satisfying the agreed-upon bounds on offered load and from the level
of service received by its I/Os:
based on the compared performance level, identifying one or more candidates for throttling in response to an I/O stream receiving
insufficient resources by determining if the client qualifies as a candidate whose received performance level is better than
the corresponding contracted service level; and
selectively and dynamically issuing a throttling command to the candidate client; and
providing a quality of service enforcement point by concurrently monitoring a plurality of I/O streams to candidate clients
and by concurrently throttling commands to the candidate clients.
|