Adaptive bandwidth throttling for network services
First Claim
1. A computer system comprising:
- a plurality of network servers;
an asynchronous thread queue means for receiving a request, from a client process, to be performed by one of the plurality of network servers; and
means for throttling, coupled to the asynchronous thread queue means, for determining whether performance of the request by the one of the plurality of network servers is to be restricted based at least in part on an average bandwidth used by the one of the plurality of network servers in performing previous operations;
wherein the means for throttling is further for determining whether performance of the request by the one of the plurality of network servers is to be restricted based on the average bandwidth used by the one of the plurality of network servers in performing previous operations and independent of the average bandwidth used by other network servers of the plurality of network servers in performing previous operations.
1 Assignment
0 Petitions
Accused Products
Abstract
The adaptive bandwidth throttling system implements a graceful diminution of services to the clients by delaying a first class of services provided by a network server in response to the effective bandwidth utilized by this network server exceeding a first threshold. If the demand for the bandwidth by this network server exceeds a second threshold, the bandwidth throttling system escalates the throttling response and blocks the first class of services from execution and can also concurrently delay execution of a second class of services. The implementation of the throttling process can be varied, to include additional levels of response or finer gradations of the response, to include subsets of a class of services. In addition, the threshold levels of bandwidth used to trigger the throttling response can be selected as desired by the system administrator.
49 Citations
8 Claims
-
1. A computer system comprising:
-
a plurality of network servers;
an asynchronous thread queue means for receiving a request, from a client process, to be performed by one of the plurality of network servers; and
means for throttling, coupled to the asynchronous thread queue means, for determining whether performance of the request by the one of the plurality of network servers is to be restricted based at least in part on an average bandwidth used by the one of the plurality of network servers in performing previous operations;
wherein the means for throttling is further for determining whether performance of the request by the one of the plurality of network servers is to be restricted based on the average bandwidth used by the one of the plurality of network servers in performing previous operations and independent of the average bandwidth used by other network servers of the plurality of network servers in performing previous operations. - View Dependent Claims (2)
-
-
3. A computer system comprising:
-
a plurality of network servers;
an asynchronous thread queue means for receiving a request, from a client process, to be performed by one of the plurality of network servers; and
means for throttling, coupled to the asynchronous thread queue means, for comparing a value indicating a bandwidth used by the one of the plurality of network servers to perform previous server operations to at least one of a first threshold and a second threshold, for restricting the request in a first manner if the value exceeds the first threshold but does not exceed the second threshold, and for restricting the request in a second manner if the value exceeds the second threshold;
wherein the means for throttling is further for determining whether to restrict the request for the one of the plurality of network servers based on the value indicating bandwidth used by the one of the plurality of network servers in performing the previous server operations and independent of bandwidth used by other network servers of the plurality of network servers in performing the previous server operations. - View Dependent Claims (4)
-
-
5. A computer system comprising:
-
a plurality of network servers;
an asynchronous thread queue to receive a request, from a client process, to be performed by one of the plurality of network servers; and
a memory to store instructions to be executed by a processor of the computer system to implement a bandwidth throttling system coupled to the asynchronous thread queue, the instructions causing the processor to determine whether performance of the request by the one of the plurality of network servers is to be restricted based at least in part on an average bandwidth used by the one of the plurality of network servers in performing previous operations, wherein the instructions cause the processor to determine whether performance of the request by the one of the plurality of network servers is to be restricted based on the average bandwidth used by the one of the plurality of network servers in performing previous operations and independent of the average bandwidth used by other network servers of the plurality of network servers in performing previous operations. - View Dependent Claims (6)
-
-
7. A computer system comprising:
-
a plurality of network servers;
an asynchronous thread queue to receive a request, from a client process, to be performed by one of the plurality of network servers; and
a memory to store instructions to be executed by a processor of the computer system to implement a bandwidth throttling system coupled to the asynchronous thread queue, the instructions causing the processor to;
compare a value indicating a bandwidth used by the one of the plurality of network servers to perform previous server operations to at least one of a first threshold and a second threshold;
restrict the request in a first manner if the value exceeds the first threshold but does not exceed the second threshold, and to restrict the request in a second manner if the value exceeds the second threshold; and
determine whether to restrict the request for the one of the plurality of network servers based on the value indicating bandwidth used by the one of the plurality of network servers in performing the previous server operations and independent of bandwidth used by other network servers of the plurality of network servers in performing the previous server operations. - View Dependent Claims (8)
-
Specification