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
OG exemplary drawing
 
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.