Dynamic application placement with allocation restrictions, vertical stacking and even load distribution
First Claim
1. A method for placement of applications comprising:
- dynamically placing applications on at least one server such as to;
maximize a total amount of satisfied application demands, minimize a number of placement changes from a current placement, and minimize imbalance of load distribution of said applications on said at least one server, the step of dynamically placing comprising the steps of;
obtaining the current placement of the applications;
computing a suggested new placement that maximizes the total amount of satisfied demands while minimizing the number of placement changes;
modifying the suggested placement in forming an updated placement to minimize the imbalance of load distribution of said applications without lowering the total amount of satisfied demands and without increasing the number of placement changes; and
executing placement changes on said current placement to effect said updated placement.
1 Assignment
0 Petitions
Accused Products
Abstract
A solution to a variant of a class constrained multiple knapsack problem. Previous solutions require that memory demand of every application be identical and do not consider minimizing placement changes. Previous techniques do not consider optimizing placement to improve load balancing as is described subsequently. Thus, the present invention provides systems, methods and apparatus, encapsulated in software, to provide the dynamic placement of application instances on a heterogeneous cluster of server machines. It depends on the existence of a visible and controllable platform, systems management and other business services that signal events and accept commands. It provides dynamically placing applications on servers such as to maximize a total amount of satisfied application demands, minimize a number of placement changes from a current placement, and minimize imbalance of load distribution of said applications on said at least one server.
-
Citations
36 Claims
-
1. A method for placement of applications comprising:
-
dynamically placing applications on at least one server such as to;
maximize a total amount of satisfied application demands, minimize a number of placement changes from a current placement, and minimize imbalance of load distribution of said applications on said at least one server, the step of dynamically placing comprising the steps of;
obtaining the current placement of the applications;
computing a suggested new placement that maximizes the total amount of satisfied demands while minimizing the number of placement changes;
modifying the suggested placement in forming an updated placement to minimize the imbalance of load distribution of said applications without lowering the total amount of satisfied demands and without increasing the number of placement changes; and
executing placement changes on said current placement to effect said updated placement. - View Dependent Claims (2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 16, 30, 31)
-
-
7. As is 6, wherein a number of said application instances of each of said applications on each said at least one server is such that each of said applications can use the entire capacity of each said at least one server.
-
14. An apparatus to place applications comprising:
-
means for dynamically placing applications on at least one server such as to;
maximize a total amount of satisfied application demands, minimize a number of placement changes from a current placement, and minimize imbalance of load distribution of said applications on said at least one server, the means for dynamically placing comprising;
means for obtaining the current placement of the applications;
means for computing a suggested new placement that maximizes the total amount of satisfied demands while minimizing the number of placement changes;
means for modifying the suggested placement in forming an updated placement to minimize the imbalance of load distribution of said applications without lowering the total amount of satisfied demands and without increasing the number of placement changes, and means for executing placement changes on said current placement to effect said updated placement. - View Dependent Claims (15, 17, 18, 19, 32)
-
-
20. A application placement method comprising providing placement of applications on a cluster of servers to facilitate load balancing, the step of providing comprising the steps of:
-
obtaining a current placement of applications, computing a suggested new placement of applications, modifying the suggested placement in forming a computed placement by computing and replacing a set of triples such that moving an application in each triple from a server of origin of said application to a destination server maximizes utility of the computed placement with respect to load balancing, and executing the computed placement. - View Dependent Claims (21, 22, 23, 24, 25, 26, 33, 34)
-
-
27. An application placement method comprising:
-
providing a set of servers and a set of applications, associating with each server n a load-independent capacity and a load-dependent capacity, said load-independent capacity corresponding to the server'"'"'s memory, said load-dependent capacity corresponding to the server'"'"'s CPU power;
associating with each application;
a load-independent demand value corresponding to the application'"'"'s memory, and a load dependent demand value corresponding to CPU requirements, a minimum number of instances that must be started for the application, minm, a maximum number of instances that may be started for the application, maxm;
associating with each application and each server parameters;
an allocation restriction flag, Rmn indicating whether an instance of the application m may be started on server n, an allocation limit for application m instance on server n, π
mn that indicates the maximum amount of CPU power that can be used by a single instance of application m on server n;
obtaining application placement currently in effect;
verifying if the placement currently in effect is sufficient to satisfy all application demands and respects all allocation restrictions and allocation limits;
if the current placement does not meet the said criteria, finding a new matrix solution to placement problem where each matrix cell mn, includes a number of instances of application m that may be started on server n such that;
minimum and maximum policies of all applications are observed, allocation restrictions are observed, load-independent capacity limits are observed, and it is possible to allocate load of all dynamic clusters to instances without exceeding per-instance allocation limits and load-dependent capacity limits;
when a previous matrix exists, maximizing the total amount of satisfied application demand is maximized;
when more than one previous placement matrix exists, minimizing a number of changes between the previous and the new matrix;
when more than one previous matrix exists, finding a matrix that maximizes the amount of allows a load allocated to servers to be balanced; and
when said matrix is found, executing the set of placement changes required to transform the current placement matrix into the calculated placement matrix. - View Dependent Claims (35)
-
-
28. A method for application placement comprising:
-
finding a new matrix solution to placement problem where each matrix cell mn, includes a number of instances of application m that may be started on server n such that;
minimum and maximum policies of all applications are observed, allocation restrictions are observed, load-independent capacity limits are observed, and it is possible to allocate load of all dynamic clusters to instances without exceeding per-instance allocation limits and load-dependent capacity limits;
prioritizing candidate placement solutions according to a measure of placement utility;
calculating a suggested placement satisfying preliminary placement objectives;
modifying the suggested placement such that an additional placement objective is satisfied; and
re-balancing the suggested placement such as to maximize a goodness of placement with respect to load allocation such that a total amount of satisfied demand remains unchanged and a number of placement changes compared to a previous placement does not increase. - View Dependent Claims (29, 36)
-
Specification