On minimizing the resource consumption of cloud applications using process migrations
According to the pay-per-use model adopted in clouds, the more resources an application running in a cloud computing environment consumes, the greater the amount of money the owner of the corresponding application will be charged. Therefore, applying intelligent solutions to minimize the resource consumption is of great importance. In this paper, we study the problem of identifying an assignment scheme between the interacting components of an application, such as processes and virtual machines, and the computing nodes of a cloud system, such that the total amount of resources consumed by the respective application is minimized. Because centralized solutions are deemed unsuitable for large distributed systems or large-scale applications, we propose a fully distributed algorithm (called DRA) to overcome scalability issues. DRA takes decisions concerning the transition from one assignment scheme to another in a dynamic way, based solely on local information. We also propose and test two modifications of the basic DRA algorithm to deal better with the heterogeneity of cloud servers in terms of capacity constraints. We must note that we capture heterogeneity regarding the network model. Through theoretical analysis, we formally prove that DRA achieves convergence and always provides an optimal solution for tree-based networks in the uncapacitated case. Moreover, we prove through experimental evaluation that DRA achieves up to 55% network cost reduction when compared to the most recent algorithm in the literature. We also show that the proposed modifications of DRA improve the algorithm's performance considerably in the case where servers have limited capacity. (C) 2013 Elsevier Inc. All rights reserved.