Another Example of CPU Throttling Due to Balanced Power Plan in Windows Server 2008 R2

Here is another example CPU throttling from someone who had a server running with the default “Balanced” Power Plan in Windows Server 2008 R2 (which works the same way in Windows Server 2008). 

As you can see in Figure 1 below, the Core Speed with the Balanced Power Plan is 1599.5 MHz, because the operating system has reduced the multiplier to 12, which reduces the clock speed from the rated speed of 2.53 GHz. This is done in the interests of minimizing the electrical usage of the CPU(s) in the server, but it has the unfortunate side effect of also reducing CPU and memory performance in some benchmarks (and in real life, especially with OLTP workloads).  The performance reduction on Geekbench is typically around 20% in my testing.

Balanced Power Plan

clip_image002

Figure 1: Core Speed of 1599.5 MHz on Intel Xeon E5540

In Figure 2 below, we see the multiplier at 21, with a resultant Core Speed of 2799.1 MHz, which is actually above the rated speed of 2.53 GHz. This is due to the effect of the first generation Turbo Boost technology in the Nehalem-EP processor, which boosts the speed of some cores when the overall processor is not working that hard. This technology is enhanced with Turbo Boost 2.0 in Sandy Bridge to be much more aggressive based on the overall temperature of the system.

High Performance Power Plan

clip_image002[6]

Figure 2: Core Speed of 2799.1 MHz on Intel Xeon E5540

You can run CPU-Z on individual systems to detect this, but that can be time consuming if you have dozens or hundreds of servers to manage. Fellow SQL MVP Aaron Bertrand (blog|twitter) has a nice article about how to use PBM to detect servers that are using the Balanced Power Plan.  Greg Gonzalez also recently blogged about how to use Group Policy to enforce the use of the High Performance Power Plan for your servers.

Don’t forget that you may need to also go into your main system BIOS and change the Power Management settings there to get your processors to run at full speed all of the time (which will require a reboot). I always try changing the Windows Power Plan first, and if that does not work, then you need go into your main BIOS and spelunk around to find the right settings to either disable power management or set it to OS Control.

Finally, if you have a few minutes, run CPU-Z on a system or two, and send me a screenshot of the results. My e-mail address is glennb  at newsgator dot com (which might slow down the spambots).  I always like adding to my CPU-Z screenshot collection!

This entry was posted in SQL Server 2008, SQL Server 2008 R2, Windows Server 2008, Windows Server 2008 R2 and tagged , , . Bookmark the permalink.

20 Responses to Another Example of CPU Throttling Due to Balanced Power Plan in Windows Server 2008 R2

  1. Andrew says:

    Glenn –

    Have you had any issues with over heating your processors? I implemented this on one server where I found this setting enabled and the CPU temp went up about 25 degrees almost instantly.

  2. Glenn Berry says:

    I have not seen that issue myself. It would depend on the vintage of the CPU (older processors run hotter), and the server design. Most rack mounted servers have lots of excess cooling capacity.
    I have heard of people having rare problems where the CPU had to be reseated with a fresh application of thermal grease between the CPU and the CPU heatsink.

  3. Jose Muller says:

    Do you have any measured/observed performance metrics for a real life environment?

  4. I’ll send you some screenshots.

    I found that for our Xeon X5680 3.33Ghz servers, core speed ran consistently at 1596 MHz when under ‘Balanced’ plan. After changing the power setting to ‘High Performance’ it went up to 3458 mHz consistently.

    For a pair of our Xeon 5670 2.93Ghz servers, core speed ran consistently at 3300 MHz under either setting.

    I haven’t had a chance to look at the BIOS settings on these boxes, and may not be able to for some time.

  5. Anton Alisov says:

    Thanks Glenn!!! This article helped me a lot! On Windows Server 2008 R2 Intel Core i5 760 (4 core) 2.8 Ghz was running constantly at 1200 Mhz (9 x 133 Mhz) with “Balanced” plan. When I swithed to “High perfomance”, core speed has grown up to 3175 Mhz (24 x 133 Mhz). As you have explained, “overclocked” core speed is a result of enabled “Turbo boost” technology.

  6. Drew says:

    I’m curious as to why the core speed is in MHz and the CPU rated speed is in GHz, but you’re comparing them as if the values are meant to match…?

    • Glenn Berry says:

      Drew,

      It is just a math thing. 3000MHz is the same as 3.0GHz. Tools like CPU-Z show the rated speed in GHz and the current core speed in MHz (which allows more precision).

  7. Randy says:

    I would guess CPU-Z has to be run directly on the server to be checked? If so I’ll have to have our Systems team do that, if they’re willing.

    • Glenn Berry says:

      Yes, it does have to be run on the server to be checked. It does not require any installation, and is completely safe in my opinion. Many, many people have been using it for years.

  8. mtupker says:

    This is very interesting. I’m betting these same kind of things would hold true for exchange 2010. Granted it uses Jet for it’s DB, but it’s behavior is pretty similar to SQL.

    I wondering if this process of constantly clocking down the processor would cause a high amount of context switching? that is something we end up seeing a lot on our exchange environment. (that and massive storport latency).

  9. Pingback: A SQL Server Hardware Nugget A Day – Day 15 | Glenn Berry's SQL Server Performance

  10. Bo Voigt says:

    Well, had our DBA look into this on our PE R510 with a E5520. The CPU-Z reporting a different speed than the Dell server manager, don’t know what to believe there?

    Have there been any digging into what happens when you have services using the databases every 5 secs in accordance to the power settings?

    • Glenn Berry says:

      The idea is that the mechanism in the CPU that reacts to an increased load by changing the multiplier to increase the clock speed does not react fast enough for short OLTP queries. Setting the Windows Power Plan to High Performance instead of the default of Balanced will keep the processor running at full speed and let it use Turbo Boost (assuming the BIOS setting for Power Mangement does not override it). The amount of extra power usage per processor to run this way is in the 20-30 watt range in tests that I have conducted.

      I would believe CPU-Z for the current clock speed. It is updated in near real time, and seems to be very accurate.

  11. Pingback: EngageIP Tips On Features And Performance - LogiSense | Billing Software | EngageIP - LogiSense | Billing Software | EngageIP

  12. Pingback: 6 Little Known Things That Can Cause Big Performance Issues | SQLRockstar | Thomas LaRock

  13. Pingback: Windows Server 2008 R2 and Core Parking, how it affects you, the administrator. - The troubleshooters and problem solvers... - Site Home - TechNet Blogs

  14. Pingback: Reflecting on the MCM Exam Experience | Jonathan Kehayias

Leave a comment