System and method for avoiding system overload by maintaining an ideal request rate
First Claim
1. A method, comprising:
- performing, by a computer system that provides services to clients;
receiving a plurality of incoming service requests;
determining that the computer system is in an overloaded state with respect to the incoming service requests;
in response to determining that the computer system is in an overloaded state, throttling incoming service requests by an aggressive amount;
subsequent to aggressively throttling incoming service requests, determining that the computer system is no longer in an overloaded state; and
in response to determining that the computer system is no longer in an overloaded state;
iteratively reducing throttling of incoming requests by an amount less than the aggressive amount by which incoming requests were throttled until an ideal request rate is reached, wherein an ideal request rate is a request rate within a pre-determined range of request rates that comprises a maximum rate at which incoming service requests can be accepted and serviced such that client-specified quality of service expectations are met for all incoming service requests that are accepted and serviced.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer system that provides services to clients may adaptively throttle incoming service requests in order to reach and then maintain operation at an ideal request rate. An ideal request rate may be a maximum rate at which incoming service requests can be serviced such that client-specified quality of service (QoS) expectations are met for most or all incoming service requests, or a rate within a range of rates defined by that maximum rate. Determining whether the system is operating at an ideal request rate may include determining the minimum difference between the expected and actual QoS for a group of recently serviced requests. The system may gradually modify a throttle multiplier value in order to reach or maintain an ideal request rate. Maintaining operation at an ideal request rate may allow the system to avoid entering an overloaded state, and/or oscillating between an overloaded state and a non-overloaded state.
196 Citations
30 Claims
-
1. A method, comprising:
performing, by a computer system that provides services to clients; receiving a plurality of incoming service requests; determining that the computer system is in an overloaded state with respect to the incoming service requests; in response to determining that the computer system is in an overloaded state, throttling incoming service requests by an aggressive amount; subsequent to aggressively throttling incoming service requests, determining that the computer system is no longer in an overloaded state; and in response to determining that the computer system is no longer in an overloaded state; iteratively reducing throttling of incoming requests by an amount less than the aggressive amount by which incoming requests were throttled until an ideal request rate is reached, wherein an ideal request rate is a request rate within a pre-determined range of request rates that comprises a maximum rate at which incoming service requests can be accepted and serviced such that client-specified quality of service expectations are met for all incoming service requests that are accepted and serviced. - View Dependent Claims (2, 3, 4)
-
5. A system, comprising:
-
one or more processors; and a memory coupled to the one or more processors and storing program instructions that when executed by the one or more processors cause the one or more processors to perform; receiving and servicing a plurality of incoming requests for a service on behalf of one or more clients; determining whether the system is servicing incoming requests at an ideal request rate, wherein an ideal request rate is a request rate within a range of request rates bounded on one side by a maximum rate at which incoming service requests can be accepted and serviced such that client-specified quality of service expectations are met for a targeted percentage of incoming service requests that are accepted and serviced; in response to determining that the system is not servicing incoming requests at an ideal request rate, modifying the amount of service request throttling performed by the system in an attempt to reach an ideal request rate. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method, comprising:
performing, by a computer system that provides services to clients; initializing the value of a throttle multiplier to zero, wherein a throttle multiplier value of zero indicates that all incoming service requests should be serviced and no incoming service requests should be throttled; servicing a plurality of incoming service requests; determining whether the system was operating at an ideal request rate during said servicing, wherein an ideal request rate is a request rate within a pre-determined range of request rates that comprises a maximum rate at which incoming service requests can be accepted and serviced such that client-specified quality of service expectations are met for a targeted percentage of incoming service requests that are accepted and serviced; in response to determining that the system was not operating at an ideal request rate, modifying the value of the throttle multiplier in an attempt to reach an ideal request rate. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
24. A non-transitory, computer-readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to perform:
-
initializing the value of a throttle parameter of a computer system that provides services to clients to a value that indicates that all incoming service requests should be serviced and no incoming service requests should be throttled; determining whether the computer system is in an overloaded state with respect to incoming service requests; in response to determining that the computer system is in an overloaded state, modifying the throttling parameter such that the system throttles incoming service requests by an aggressive amount; subsequent to aggressively throttling incoming service requests, determining that the computer system is no longer in an overloaded state; and in response to determining that the computer system is no longer in an overloaded state; iteratively adjusting the value of the throttle parameter such that throttling of incoming requests is reduced by an amount less than the aggressive amount by which incoming requests were throttled until an ideal request rate is reached, wherein an ideal request rate is a request rate within a range of request rates whose upper bound is a maximum rate at which incoming service requests can be accepted and serviced such that client-specified quality of service expectations are met for all incoming service requests that are accepted and serviced. - View Dependent Claims (25, 26, 27, 28, 29, 30)
-
Specification