Adaptive bandwidth throttling for network services
First Claim
1. A computer system comprising:
- at least one network server;
an asynchronous thread queue means for receiving a request, from a client process, to be performed by one of the at least one network server; and
means for throttling, coupled to the asynchronous thread queue means, for determining whether performance of the request by the one of the at least one network server is to be restricted based at least in part on an average bandwidth used by the one of the at least one network server in performing previous operations;
wherein the means for throttling comprises;
a measurement subsystem means for computing the average bandwidth used by the one of the at least one network server in performing previous operations; and
a control subsystem means, coupled to the measurement subsystem means, for making the determination and for communicating how the asynchronous thread queue means is to restrict performance of the request.
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.
40 Citations
7 Claims
-
1. A computer system comprising:
-
at least one network server;
an asynchronous thread queue means for receiving a request, from a client process, to be performed by one of the at least one network server; and
means for throttling, coupled to the asynchronous thread queue means, for determining whether performance of the request by the one of the at least one network server is to be restricted based at least in part on an average bandwidth used by the one of the at least one network server in performing previous operations;
wherein the means for throttling comprises;
a measurement subsystem means for computing the average bandwidth used by the one of the at least one network server in performing previous operations; and
a control subsystem means, coupled to the measurement subsystem means, for making the determination and for communicating how the asynchronous thread queue means is to restrict performance of the request. - View Dependent Claims (2)
-
-
3. A computer system comprising:
-
at least one network server;
an asynchronous thread queue to receive a request, from a client process, to be performed by one of the at least one network server; 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 at least one network server is to be restricted based at least in part on an average bandwidth used by the one of the at least one network server in performing previous operations;
wherein the instructions further cause the processor to implement, as part of the bandwidth throttling system;
a measurement subsystem to compute the average bandwidth used by the one of the at least one network server in performing previous operations; and
a control subsystem, coupled to the measurement subsystem, to make the determination and communicate how the asynchronous thread queue is to restrict performance of the request. - View Dependent Claims (4)
-
-
5. A computer system comprising:
-
a processor; and
a memory, coupled to the processor, storing instructions that, when executed by the processor, cause the processor to;
determine a presently used bandwidth for each of at least one network server by way of a data transmission rate measurement during execution of an operation for each of said at least one network server that includes;
storing data indicative of said data transmission rate measurement of said operation for n last most recently executed operations for each of said at least one network server, wherein n is a positive integer greater than 2, and generating data indicative of an effective presently used bandwidth for each of said at least one network server wherein said effective presently used bandwidth includes an average of said data transmission rate measurement over said n last most recently executed operations;
effect provision of a plurality of classes of service provided by one of said at least one network server in a first manner, in response to said effective presently used bandwidth for said one of said at least one network server that exceeds a first threshold; and
effect provision of said plurality of classes of service provided by said one of said at least one network server in a second manner that differs from said first manner, in response to said effective presently used bandwidth for said one of said at least one network server that exceeds a second threshold that is greater than said first threshold.
-
-
6. A computer system comprising:
-
a processor; and
a memory, coupled to the processor, storing instructions that, when executed by the processor, cause the processor to;
store data indicative of a predetermined allocated data transmission bandwidth for each of a plurality of network servers, each of said plurality of network servers providing a plurality of classes of service;
determine an effective bandwidth for each of said plurality of network servers, comprising;
calculating a bandwidth for each operation performed by each of said plurality of network servers, tabulating a count of bandwidth used by each of said plurality of network servers in each of a plurality of last time intervals, and averaging said tabulated count of bandwidth to obtain a value indicative of said effective bandwidth;
delay, in response to said effective bandwidth for a one of said network servers substantially corresponding to said predetermined allocated data transmission bandwidth for said one network server, for delaying a first subset of said plurality of classes of service provided by said one network server; and
reject, in response to said effective bandwidth for said one network server exceeding said predetermined allocated data transmission bandwidth for said one network server, requests for said first subset of classes of service provided by said one network server and for delaying service for a second subset of said plurality of classes of service provided by said one network server.
-
-
7. A computer system comprising:
-
a processor; and
a memory, coupled to the processor, storing instructions that, when executed by the processor, cause the processor to;
determine a presently used bandwidth for each of a plurality of network servers by way of a data transmission rate measurement taken during execution of an operation for each of said plurality of network servers, said determining including;
storing data indicative of a predetermined allocated data transmission bandwidth for each of said plurality of network servers, and storing data indicative of a first threshold, wherein said first threshold includes an indication of a differential from said predetermined allocated data transmission bandwidth for each of said plurality of network servers; and
effect provision of a plurality of classes of service provided by a first one of said plurality of network servers in a manner that is individually defined for a plurality of successively greater thresholds in response to said effective presently used bandwidth of said first one of said plurality of network servers exceeding one of said plurality of successively greater thresholds, wherein said manner defined for said first one of said plurality of network servers differs from every other manner defined for other ones of said plurality of network servers.
-
Specification