  Energy consumption is a growing issue in data centers, impacting their
economic viability and their public image. In this work we empirically
characterize the power and energy consumed by different types of servers. In
particular, in order to understand the behavior of their energy and power
consumption, we perform measurements in different servers. In each of them, we
exhaustively measure the power consumed by the CPU, the disk, and the network
interface under different configurations, identifying the optimal operational
levels. One interesting conclusion of our study is that the curve that defines
the minimal CPU power as a function of the load is neither linear nor purely
convex as has been previously assumed. Moreover, we find that the efficiency of
the various server components can be maximized by tuning the CPU frequency and
the number of active cores as a function of the system and network load, while
the block size of I/O operations should be always maximized by applications. We
also show how to estimate the energy consumed by an application as a function
of some simple parameters, like the CPU load, and the disk and network
activity. We validate the proposed approach by accurately estimating the energy
of a map-reduce computation in a Hadoop platform.
