Virtually every server, desktop, and laptop ships with some sort of native power management built-in.  It’s there to allow you to run these devices even more efficiently by controlling or limiting the power draw of the system.  I recall it as beginning with laptops to conserve precious battery runtime but it’s migrated to desktops and servers over time.  In laptops and desktops you’re probably familiar with power settings such as “Home/Office Desk,” “Always On,” “Max Battery,” etc.  Servers are a bit more sophisticated in their approach but it would appear not much.  The CPU’s inside servers have different power levels which correspond to different processing capacities (i.e., different CPU frequencies).  I’ve heard it stated that a CPU can draw up to 60% of its rated power while sitting there doing absolutely nothing so one would think IT management would want to do something about that.  Usually, they do not. 

The tools exist and utilize techniques such as DVFS (Dynamic Voltage and Frequency Scaling) to help attack the power management problem.  The problem is that all these power management features either ship disabled from the various manufacturers or are disabled upon installation. They’ll never get turned on, especially in the Enterprise space, because they’re generally not trusted.  Their effects are unpredictable and neither the manufacturer nor the IT administrator typically get rewarded for saving energy, but they might get fired for hurting performance.  An Enterprise class server needs to be able to perform on demand, especially in a virtualized environment, and there is a fear that these native power management systems will cap the CPU when it’s needed most or that systems won’t come out of a reduced power consumption mode such as sleep or hibernation when needed.

Recently, I met with a company called MiserWare that claims to have developed a software agent that allows power management SLA’s to be established at the CPU level.  This software closely tracks the IT load and lets the user determine what the effect of the power management will be on their system.  Their claim is that these “performance guarantees” are what make their software special compared to everything else out there. 

Utilizing the built-in power/performance steps of the CPU, schedules can be created allowing you to decide when the servers are fully managed by the agent, managed in a limited mode (for example, power capped), or completely unmanaged.  For a financial firm, this would allow a server to perhaps run unmanaged during the trading day but run in a managed mode at night when processing payroll.  This company maintains that while other similar “governors” exist, they are highly unpredictable and can lead to performance degradation (up to 67% performance loss in some cases).  The claim is that their governor provides as much as a 35% savings in the annual power bill with no degradation in performance.  There is a freeware version of the Consumer/Enterprise versions available at http://grano.la if you want to start testing the accuracy of their claims.

I discussed virtualization in a recent blog and I made a point that it can take your CPU utilization to >50%.  Power management at the server level can take you even higher.  Has anyone tried implementing either native or third party management schemes?  If so, what did you experience?  If not, would you consider going there?