Virtual Machine Resource Allocation for Service Hosting on Heterogeneous Distributed Platforms
Résumé
We propose algorithms for allocating multiple resources to competing services running in virtual machines on heterogeneous distributed platforms. We develop a theoretical problem formulation and compare these algorithms via simulation experiments based in part on workload data supplied by Google. Our main finding is that vector packing approaches proposed in the homogeneous case can be extended to provide high-quality solutions in the heterogeneous case, and combined to provide a single efficient algorithm. We also consider the case when there may be errors in estimates of performance-related resource needs. We provide a resource sharing algorithm and prove that for the single-resource, single-node case, when there is no bound on the error, its performance ratio relative to an omniscient optimal algorithm is $\frac{2J-1}{J^2}$, where $J$ is the number of services. We also provide a heuristic approach for compensating for bounded errors in resource need estimates that performs well in simulation.
Nous proposons des algorithmes pour l'allocation des ressources aux services concurrents s'exécutant dans des machines virtuelles déployées sur des systèmes hétérogènes et distribuées. Nous développons une formulation théorique du problème et comparons les algorithmes proposés via des simulations basées en partie sur des traces mises à disposition par Google. Notre principale conclusion est que les approches de \emph{bin packing} vectoriel proposées pour le cas homogène peuvent être étendues afin de fournir des solutions de qualité dans le cas hétérogène. Ces approches peuvent également être combinées entre elles pour fournir un seul algorithme efficace. Nous considérons également le cas où les estimations des besoins en ressources sont connus de manière imparfaite. Nous montrons, quand il y a un unique nœud et une unique ressource, et quand l'erreur maximale sur l'estimation des besoins en ressource n'est pas bornée, que l'on peut définir un algorithme avec un facteur de compétitivité de $\frac{2J-1}{J^2}$, où $J$ est le nombre de services. Quand il existe une borne sur l'erreur maximale sur l'estimation des besoins, nous définissons une heuristique qui obtient de très bonnes performances même en présence de telles erreurs.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...