Energy-Efficient Dynamic Capacity Provisioning in Server Farms (CMU-CS-10-108)
A central question in designing server farms today is how to efficiently provision the number of servers to handle unpredictable demand patterns, so as to extract the best performance while not wasting energy. While one would like to turn servers off when they become idle to save energy, the large setup cost (both, in terms of setup time and energy penalty) needed to switch the server back on can adversely affect performance. The problem is made more complex by the fact that today’s servers provide multiple sleep or standby states which trade off the setup cost with the power consumed while the server is ‘sleeping’. With so many controls, finding the optimal server pool management policy is an almost intractable problem – How many servers should be on at any given time, how many should be off, and how many should be in some sleep state? In this paper, we analyze server farm management policies, and prove that it suffices to consider a small, natural class of policies to guarantee near-optimal behavior. We employ the popular metric of Energy-Response time Product (ERP) to capture the energy-performance tradeoff, and present the first theoretical results on the optimality of server farm policies under both stationary and timevarying demand patterns. We find that there exists a very small set of natural policies that always contains the optimal policy for a single server, and a near-optimal policy for multi-server systems, for a stationary demand pattern. We also consider server farm management policies for time-varying demand patterns and propose a robust, traffic-oblivious policy which is asymptotically optimal as the load becomes large.