System and method of load balancing traffic bursts in non-real time networks
AssigneeParallels International GmbH
InventorsDaniel Farrugia, Nikolay Dobrovolskiy, Serguei M. Beloussov
Life of this patent
Estimating the term…
Abstract
Disclosed are systems and methods for balancing load of computing resources among a plurality of servers by a plurality of load balancers. Clients communicate with a front-end device which forwards requests to the load balancers in a cyclical fashion. The load balancers estimate the impact of the received requests and can forward client requests to an estimated least loaded backend server. The backend servers process client requests and periodically report load statistics to the load balancers.
Claims23
A method for balancing loads of computing resources among a plurality of servers by a plurality of load balancers, wherein the method comprises:
- receiving, by a first load balancer of the plurality of load balancers, from each of the plurality of servers, resource usage statistics associated with services executing in the server, wherein the resource usage statistics received from the server indicate a current load of the server;
- receiving, by the first load balancer, a plurality of requests for the services executing in the servers, wherein the plurality of requests are received from a front-end device that selects a load balancer from among the plurality of load balancers to which each of the plurality of requests is to be directed according to a cyclical pattern;
- determining, by the first load balancer, a total number of requests received by the plurality of load balancers for the services executing in the servers, the total number being determined based on the cyclical pattern;
- determining, by the first load balancer, an estimated increased load of each of the plurality of servers based on the received resource usage statistics and the total number of requests;
- and
- for each of the plurality of requests, by the first load balancer, selecting a server of the plurality of servers to fulfill the request and forwarding the request to the selected server, the selection being based on respective estimates of increased loads of the plurality of servers.
A system for balancing loads of computing resources among a plurality of servers, wherein the system comprises:
- a plurality of load balancers including a first load balancer;
- and
- a front-end device configured to receive a plurality of requests from one or more clients, and forward the plurality of requests to the plurality of load balancers according to a cyclical pattern,
- wherein each of the plurality of load balancers includes a processor configured to:
- from each of the plurality of servers, receive resource usage statistics associated with services executing in the server, wherein the resource usage statistics received from the server indicate a current load of the server;
- determine a total number of requests received by the plurality of load balancers for the services executing in the servers, the total number being determined based on the cyclical pattern;
- determine an estimated increased load of each of the plurality of servers based on the received resource usage statistics and the total number of requests;
- and
- for each of the plurality of requests, select a server of the plurality of servers to fulfill the request and forward the request to the selected server, the selection being based on respective estimates of increased loads of the plurality of servers.
A non-transitory computer readable medium comprising computer executable instructions for balancing loads of computing resources among a plurality of servers by a plurality of load balancers, including instructions for:
- receiving, by a first load balancer of the plurality of load balancers, from each of the plurality of servers, resource usage statistics associated with services executing in the server, wherein the resource usage statistics received from the server indicate a current load of the server;
- receiving, by the first load balancer, a plurality of requests for the services executing in the servers, wherein the plurality of requests are received from a front-end device that selects a load balancer from among the plurality of load balancers to which each of the plurality of requests is to be directed according to a cyclical pattern;
- determining, by the first load balancer, a total number of requests received by the plurality of load balancers for the services executing in the servers, the total number being determined based on the cyclical pattern;
- determining, by the first load balancer, an estimated increased load of each of the plurality of servers based on the received resource usage statistics and the total number of requests;
- and
- for each of the plurality of requests, by the first load balancer, selecting a server of the plurality of servers to fulfill the request and forwarding the request to the selected server, the selection being based on respective estimates of increased loads of the plurality of servers.
Dependencies are inferred from the claim text.