NOTE: THIS DOCUMENT IS FOR INFORMATIONAL PURPOSES ONLY, AND MAY CONTAIN TYPOGRAPHICAL ERRORS AND TECHNICAL INACCURACIES. THE CONTENT IS PROVIDED AS IS, WITHOUT EXPRESS OR IMPLIED WARRANTIES OF ANY KIND.
Windows Server 2008 Power Management Support and Configuration

Windows Server 2008 power management is a significant change from Server 2003. Server 2003 did not enable power management capabilities by default, whereas Server 2008 does.

Enabling Server 2008 Power Management on Dell PowerEdge Servers

In order to take advantage of the power management improvements in Windows Server 2008, the following three components must all have the capability and be properly configured:

  • Hardware (CPU, chipset, devices)
  • Firmware/BIOS
  • Operating system

Hardware:

CPU - The CPUs must have the capability to be power-managed (if the BIOS is set correctly).

PCI-Express slots and PCI Express devices – Server 2008 has a new capability to power-manage devices placed in PCI-Express slots, BUT, this feature is not enabled in our systems due to hardware and chipset issues that prevent it from working across the entire set of 10G platforms (more on this later in the article)

BIOS Settings:

Servers prior to 10G have the BIOS setting for DEMAND-BASED POWER MANAGEMENT disabled. It is enabled in all 10 servers.

BIOS Settings
The setting above as shown in BIOS must be set to “enabled” to allow CPU power management in Windows Server 2008.

BIOS Note: In Dell Server BIOS, this setting will be visible even if the CPU does not support enabling this feature, but you will not be able to change the setting to enabled. For Intel CPUs, see the note below explaining why the setting may not toggle.

CPU Note (Intel):

There is one limitation that prevents all Intel CPU's from supporting SpeedStep (or Demand Based Switching as it's called in servers). Because the CPU multiplier is used as the mechanism to reduce frequency, any CPU that hits the minimum multiplier cannot Speedstep. As a general rule of thumb, Xeon processors have a minimum multiplier of 6. The clock for a 1333MHz FSB is 333MHz (1333 / 4) which gives a minimum frequency of 2.0GHz. A similar calculation holds true for 1066MHz and 1600MHz FSB's. They have minimum frequencies of 1.6GHz and 2.4GHz respectively. Any frequencies higher than those support SpeedStep.

To recap -

  • 1333 FSB - clock rate = 333 MHz (1333/4) – 333*6 = 2 GHz or lower = no speedstep
  • 1066 FSB – clock rate= 266 MHz (1066/4) - 266*6 = 1.6 GHz or lower = no speedstep
  • 1600 FSB – clock rate=400 Mhz (1600/4) – 400*6 – 2.4 GHz or lower = no speedstep

Operating System:

Server 2008 was designed from the ground up to natively support power management. These include:

1) Changes to default settings (vs. Server 2003) - Server 2008 defaults to “Balanced” power management that enables power management and other capabilities. Server 2003, by contrast, would default to what would be called “high-performance” mode in server 2008 (no power management).


Power Options


2) Native CPU processor drivers that support cpu throttling based on system activity. This can be observed and changed in the advanced settings for power options, as seen in the picture below. In general, leave the settings at the defaults unless you are an expert!

Moderate Power Savings


3) Hibernate enabled (“hibernate-ready” is the best analogy) by default on all systems with 4 gig or less RAM. This is observed both within the advanced settings for power options (see picture) and also when viewing hidden files in the root directory – you will see the hiberfil.sys is already created. As you can see below, it is set to “never” hibernate (i.e. the system will not timeout and automatically go into hibernate).


Hybernate Settings


4) Ability to support Hibernate on systems with MORE than 4 gig RAM. Server 2008 has the ability to support hibernate on systems that have more than 4 gig of RAM. Server 2003 would fully disable the capability to hibernate if the system had more than 4 gig of RAM – the OS code has been modified to overcome this limitation.

5) Windows Server 2008 is able to support PCI-Express power management, BUT, this requires explicit hardware and BIOS capability to fully exploit this new feature. The BIOS MUST hand off full control of PCI-Express power management to Windows Server 2008. However, this is a new feature for both Server 2008 and Vista and unfortunately the hardware is not always fully compliant or capable of supporting this new power management feature. As a result of Dell testing, we have elected to disable ASPM (we retain control of this in BIOS) and the OS “all or nothing” approach to PCI-Express power management support means it is disabled on all current platforms and this is likely to remain into the future. It is possible that future OS releases may allow more granular support of PCI-Express power management, so we could enable for devices we know fully support it via our testing, and to disable support for devices that are unknown or have known deficiencies.


Operating System Note: Though Dell server platforms do not have PCI-Express power management support, Windows Server 2008 still exposes the settings in the advanced power options, as seen below:


PCI-E Settings


DESPITE the presence of these settings, changing these settings makes no difference in the power consumption of devices on the PCI-Express bus. This may change as hardware and operating system matures.
Tips, Tools, Techniques: Hibernate: IF Hibernate is disabled on your system (the “sleep” option would not appear in advanced settings and hiberfile.sys would be missing), you must use a command-line tool called “powercfg.exe” to enable hibernate – see below:

Sleep Settings


Problem - “I can’t find out how to hibernate the system manually even after I enable it!”

Solution: You can set the state of either the power button or menu button to default to hibernate, then use those to hibernate a platform:


Power Button Settings

Problem: How can I tell if CPU power management is working?

Solution: use the perfmon tool to display CPU performance and observe CPU throttling.

1) Open a command prompt
2) Type “Perfmon”
3) Alternatively – go to Control Panel, Administrative tools, Reliability and Performance Monitor
4) Select performance monitor
Performance Monitor
DESELECT all active components being monitored (use the red “X” at the top of the performance monitor tool). This cleans up the display to focus in on CPU performance.

SELECT/ADD “% Of Maximum Frequency” counter from the Processor Performance category – use the “+” sign, next to the red “X” at the top of performance monitor

In the example above (AMD processor), it typically runs at slightly over 40% of maximum frequency. If you perform tasks on the system, you will observe spikes as CPU activity increases.

  • In the example above, I had initially changed the MINIMUM CPU % to 100% to observe that the CPU then remained at 100% (simulating “high performance/no power management” setting)
  • I then changed it back to 5% and saw the CPU frequency drop back to the normal idle value of 40%.


More Information

Information about Windows Server 2003 CPU Power Management:
http://www.microsoft.com/whdc/system/pnppwr/powermgmt/w2k3_ProcPower.mspx

Windows Vista and Server 2008 CPU power management:
http://download.microsoft.com/download/0/0/b/00bba048-35e6-4e5b-a3dc-36da83cbb0d1/ProcPowerMgmt.docx

AMD Power Monitor Tool:
http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_871_9033,00.html