With green computing, the introduction of the concept of a carbon footprint and the increasing cost of power businesses and individuals are more aware than ever of the virtues of running IT equipment as economically as possible, without jeopardising stability or performance.
To assist in making your virtualized environment more energy efficient VMware released a nice new feature in ESX/ESXi 4.0 called Dynamic Voltage and Frequency Scaling (DVFS) which contributes towards the reduction of your server infrastructure’s power consumption.
So what is DVFS?
Dynamic Voltage and Frequency Scaling allows an ESX/ESXi host to dynamically switch its CPU frequency dependent on it’s load requirement. It does this by continuously monitoring the CPU utilisation with the DVFS algorithm determining any necessary adjusts to the CPU’s frequency with the goal being to run the CPU at a lower frequency so that it consumes less power. It uses processor performance states (P-states) presented to the VMkernel through an ACPI interface to achieve this.
For example: If your 2GHz CPU is sitting at 30% utilization then DVFS will reduce the frequency of the CPU so it will operate nearer to its 600MHz frequency requirement including enough headroom to accommodate a sudden increase in CPU requirement.
For an ESX/ESXi host to take advantage of DVFS its CPU’s will need to support the Enhanced Intel SpeedStep or Enhanced AMD PowerNow! CPU power management technologies. This power saving feature must be enabled in the hosts BIOS before it will show in the ‘Configuration’ tab of ESX/ESXi.
Below: With Enhanced Intel SpeedStep enabled in my HP Proliant ML110’s BIOS it shows up in ESX’s CPU configuration:
Below: My HP Proliant ML115 G5 with ‘Enhanced AMD PowerNow! enabled:
How do I configure DVFS?
As mentioned above to be able to use DVFS your ESX host needs the following:
- A CPU(s) with Enhanced Intel SpeedStep or Enhanced AMD PowerNow! CPU power management technologies.
- For Enhanced Intel SpeedStep or Enhanced AMD PowerNow! to be enabled in the BIOS.
Once your host meets these criteria you then need to change one of ESX’s ‘Advanced Settings’ (see below) from ‘static’ (the default) to ‘dynamic’.
From the vSphere Resource Management Guide:
To set the CPU power management policy, use the advanced host attribute Power.CpuPolicy (see screenshot below). This attribute setting is saved in the host configuration and can be used again at boot time, but it can be changed at any time and does not require a server reboot. You can set this attribute to the following values.
static – The default. The VMkernel can detect power management features available
on the host but does not actively use them unless requested by the BIOS for
power capping or thermal events.
dynamic – The VMkernel optimizes each CPU’s frequency to match demand in order to
improve power efficiency but not affect performance. When CPU demand
increases, this policy setting ensures that CPU frequencies also increase.
You may also want to tweak either of the other two DVFS configuration parameters – though in most circumstances these should be left at the default values.
So how much power does it save?
In this video I demonstrate how to set your ESX host to use DVFS and give a real world example of the power savings on my HP Proliant ML110 G5 server.
For more information see:
vSphere Resource Management Guide (Page 22)