Method and system for performance balancing in a distributed computer system
First Claim
1. A method of dynamic performance balancing in a distributed computer system comprising:
- using a plurality of monitoring agents associated with a plurality of application servers, collecting an average service time statistic from each application server in a cluster of application servers, wherein each of the application servers in the cluster is a software environment running an instance of an application, and wherein the cluster is distributed across a plurality of physical hosts;
using the plurality of monitoring agents, collecting a central processing unit utilization statistic from each of the plurality of physical hosts;
using the plurality of monitoring agents, communicating a plurality of average service time statistics and a plurality of central processing unit utilization statistics to a performance balancer associated with a router configured to receive a plurality of scaled routing weights;
using the performance balancer, periodically calculating a plurality of routing weights from the plurality of average service time statistics and the plurality of central processing unit utilization statistics;
responsive to calculating the plurality of routing weights, calculating the plurality of scaled routing weights, each scaled routing weight being a sum of a proportional gain constant multiplied by an error function, an integral gain multiplied by a sum of the error function over a pre-determined number of control cycles, and a derivative gain multiplied by a change in the error function with respect to a previous control cycle; and
using the router, distributing requests for the application to the application servers in the cluster in accordance with the plurality of scaled routing weights.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of dynamic performance balancing in a distributed computer system including collecting average service time statistics for application requests distributed from multiple application servers and collecting application server CPU utilization statistics from multiple hosts where each host is associated with at least one of the application servers. In addition, the method includes periodically calculating scaled routing weights from the average service time and CPU utilization statistics and distributing server requests to the application servers in accordance with the scaled routing weights. Also provided is a distributed computer system configured to accomplish dynamic performance balancing as described above, and an article of manufacture for use in programming a distributed computer system containing instructions to accomplish dynamic performance balancing of server requests as described above.
-
Citations
7 Claims
-
1. A method of dynamic performance balancing in a distributed computer system comprising:
-
using a plurality of monitoring agents associated with a plurality of application servers, collecting an average service time statistic from each application server in a cluster of application servers, wherein each of the application servers in the cluster is a software environment running an instance of an application, and wherein the cluster is distributed across a plurality of physical hosts; using the plurality of monitoring agents, collecting a central processing unit utilization statistic from each of the plurality of physical hosts; using the plurality of monitoring agents, communicating a plurality of average service time statistics and a plurality of central processing unit utilization statistics to a performance balancer associated with a router configured to receive a plurality of scaled routing weights; using the performance balancer, periodically calculating a plurality of routing weights from the plurality of average service time statistics and the plurality of central processing unit utilization statistics; responsive to calculating the plurality of routing weights, calculating the plurality of scaled routing weights, each scaled routing weight being a sum of a proportional gain constant multiplied by an error function, an integral gain multiplied by a sum of the error function over a pre-determined number of control cycles, and a derivative gain multiplied by a change in the error function with respect to a previous control cycle; and using the router, distributing requests for the application to the application servers in the cluster in accordance with the plurality of scaled routing weights. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of dynamic performance balancing in a distributed computer system comprising:
-
using a plurality of monitoring agents associated with a plurality of application servers, collecting an average service time statistic from each application server in a cluster of application servers, wherein each of the application servers in the cluster is a software environment running an instance of an application, and wherein the cluster is distributed across a plurality of physical hosts; using the plurality of monitoring agents, collecting a central processing unit utilization statistic from each of the plurality of physical hosts; using the plurality of monitoring agents, communicating a plurality of average service time statistics and a plurality of central processing unit utilization statistics to a performance balancer associated with a router configured to receive a plurality of scaled routing weights; using the performance balancer, calculating a relative performance measure for each of the application servers in the cluster by comparing the average service time statistic for each of the application servers in the cluster to the average service time statistics collected for all of the application servers in the cluster; using the performance balancer, calculating a balanced system relative performance measure, wherein the relative performance measures calculated for each of the application servers in the cluster are equal, and thereby indicate a balanced system condition; using the performance balancer, calculating an error function for each of the application servers in the cluster by determining a deviation of the relative performance measure for each application server in the cluster from the balanced system relative performance measure; using the performance balancer, calculating a plurality of routing weights comprising a routing weight for each application server in the cluster by applying proportional integral derivative control to the error function for each of the application servers in the cluster; responsive to calculating the plurality of routing weights, calculating the plurality of scaled routing weights, each scaled routing weight being a sum of a proportional gain constant multiplied by the error function for the associated server in the cluster, an integral gain multiplied by a sum of the error function for the associated server in the cluster over a pre-determined number of control cycles, and a derivative gain multiplied by a change in the error function for the associated server in the cluster with respect to a previous control cycle; using the performance balancer, adjusting the plurality of scaled routing weights with a dampening factor selected based on the central processing unit utilization statistics of the physical hosts; using the performance balancer, adjusting the plurality of scaled routing weights with a limiting factor, wherein the limiting factor limits change in each of the plurality of scaled routing weights above a threshold amount to avoid abrupt load changes on the cluster; and using the router, distributing requests for the application to the application servers in the cluster in accordance with the plurality of scaled routing weights.
-
Specification