Karpowicz, M; Niewiadomska-Szynkiewicz, E; Arabas, P; Sikora, A
Reduction of energy consumption is clearly one of the major technological challenges arising with development of cloud computing infrastructures. To meet the ever increasing demand for computing power, recent research efforts have been taking holistic view to energy-aware design of hardware, middleware, and data processing applications. Indeed, advances in hardware layer development require immediate improvements in the design of system control software. For this to be possible, new power management capabilities of hardware layer need to be exposed in the form of flexible Application Program Interfaces (APIs). Consequently, novel APIs and cluster management tools allow for system-wide regulation of energy consumption, capable of collecting and processing detailed cluster performance measurements, and taking real-time coordinated actions across the cloud infrastructure. This chapter presents an overview of techniques developed to improve energy efficiency of cloud computing. Power consumption models and energy usage profiles are presented together with energy efficiency measuring methods. Modeling of computing and network dynamics is discussed from the viewpoint of system identification theory, indicating basic experiment design problems and challenges. Novel approaches to cluster and network-wide energy usage optimisation are surveyed, including multi-level power and software control systems, energy-aware task scheduling, resource allocation algorithms and frameworks for backbone networks management. Software-development techniques and tools are also presented as a new promising way to reduce power consumption at the computing node level. Finally, energy-aware server-level and network-level control mechanisms are presented, including ACPI-compliant low power idle and service rate scaling solutions.