Energy and performance aware resource management in heterogeneous cloud datacenters

In cloud computing, datacenters are the principal consumers of electricity. In 2014, Cloud datacenters reportedly accounted for some 70 billion kWh, which is the equivalent of 1.8% of the US’ total energy consumption. With growth in on-line services, but increased computational power per unit of energy, consumption is projected to account for 73 billion kWh by 2020. Datacenters comprise large numbers of servers, as well as storage, that cloud customers can use in the amounts they require for as long as they are willing to pay. In infrastructure clouds, customers request the launch of Virtual Machines (VMs) which will consume server and storage resources. The provider decides which server is selected, and the customer decides how long to run the VM for. The unpredictability of customers of infrastructure clouds can result in datacenters having a number of servers either idle or running a minimal VM loading at various times, and wasting energy as a consequence. Improvements to management techniques such as VM allocation and resource consolidation can help to improve energy and performance efficiency. However, for a particular VM the energy consumption and runtime may be different in different servers due to: (i) the number of VMs the servers run; and (ii) the performance of servers. Therefore, w.r. t VM allocation it might be more energy and performance efficient to place VMs on servers that consume less energy and can meet the VM performance goals. Moreover, consolidation brings two, related, problems: (i) consolidation involves migrating VMs across servers, which adds to energy consumption, and will only be more energy efficient if this cost can be recovered; and (ii) due to resource heterogeneity the performance of VMs varies with the underlying hardware, and with it, runtimes and energy usage, and hence costs. In respect to (i), if the VM terminates during or just after the migration has finished, the migration effort is definitely wasted, which implies a cost recovery time objective after which further energy can be saved as the VM subsequently runs more efficiently. In respect to (ii), if the VM is migrated to a server with lower performance, increased runtime can decrease datacenter throughput and energy efficiency, and increase agreed (pay per use) customer cost. We explore how consolidation of VMs can help to decrease datacenter energy consumption whilst ensuring that migration costs are recoverable in the vast majority of cases, and also ensuring that workload performance is not negatively affected. Several algorithms for energy-performance efficient VM allocation and consolidation are proposed, implemented through extensions and modifications to the popular Cloud simulation environment, CloudSim, and evaluated in respect to a large dataset of workload information from a major cloud provider. Principal findings from these simulations are: (i) efficient VM allocation can be at least 1.72% (±0.02 error) more energy-efficient than consolidation; (ii) it is 3.52% (±0.05 error) more energy-efficient to migrate relatively long-running VMs; and (iii) for heterogeneous workloads and clouds, different scheduling and migration techniques demonstrate a diversity in energy efficiency and performance (hence cost) trade-off. An energy-performance efficient migration approach can be up to 3.66% (±0.05 error) more energy efficient, and 1.87% (±0.025 error) more performance efficient, than a no migration strategy. This suggests a saving of approximately $0.72m annually, which compares favourably to a maximum projected usage of the Google's cluster (12,583 hosts) of $1.58m/year. Based on these results, cloud providers could both reduce their energy usage, reducing costs and either pass savings to customers, invest in more infrastructure, or increase profits; more broadly, such reductions in energy usage could reduce the impact of global warming.