Processor Power Settings – How to ensure your SQL Server is running optimally.

The processor(s) in your server have been advertised to run at a certain frequency, for example 3.0GHz. This article will help you identify if your processor is indeed running at the advertised speed, and if it’s not, what you can do about it.

First, in order to be able to obtain real time information about your processor and its clock speed, we’ll need a user friendly tool to help us get that information. There are a handful of tools out there that can do the job, but the most common tool used among professionals and hobbyists alike is CPU-Z. You can grab the installer or the ZIP package here: http://www.cpuid.com/softwares/cpu-z.html

When you first fire up the program, it will default to the CPU tab. This is where all of the information about the CPU is stored. If there are more than one CPUs (physical) it will let you select each one so you can review its information as well.

cpu-z

Our main area of focus will be in the Clocks section, particularly the 3 fields called Core Speed, Multiplier, and the Bus Speed.

The way that frequency is calculated, is Multiplier x Bus Speed = Clock Speed. Bus speed usually doesn’t change, unless you manually decide to change it which this article will not be covering today. Assuming that your Bus speed is a very typical 100Mhz, your multiplier is the only factor dictating the CPU frequency.

Therefore, if you’re multiplier is 30, your total speed is 3000MHz or 3GHz. Find out what your CPU is advertised under and make sure you’re seeing the same thing in CPU-z window. If your CPU is rated at 3.4GHz, you will likely see a multiplier of 34. Sometimes you might even see a range, something like 8-37. We’ll talk about the range shortly.

So what do you do when the CPU isn’t running at advertised speed? Well, we need to find out the reason behind this, and there’s usually 3 reasons for that.

Reason #1 – EIST

EIST or Enhanced Intel SpeedStep Technology is designed to dynamically alter the speed of the CPU, decreasing the speed when not needed and increasing it when needed in order to save power, keep the heat low, etc. If in the CPU-z window you see a range of your multiplier 8-34 for example, and it keeps changing, this is likely a behavior of EIST. You can disable this feature and make the CPU run at the advertised rate all the time. Refer to your BIOS manual on how to perform this change.

eist

Reason #2 – Windows Power Settings

If for some reason your server has been configured with Power Saving plan, Windows will manually limit the speed of the CPU, thus causing performance issues. The best solution for this is never to have the Power Saving plan on your server. Always go for Balanced or High Performance (recommended) and double check the CPU settings to ensure there are no CPU limitations:

power_settings

You may not see “battery” settings on your machine, this screenshot came from a Dell Laptop which is why battery options are visible. You want to ensure there are no hard limits on CPU in your configuration.

Reason #3 – Throttling due to Overheating

If your CPU(s) are physically overheating or reaching their thermal threshold, server will automatically throttle down the speed to compensate for it. Unlike the other 2 problems, this one is hardware related and would require servicing of the server to ensure that the airflow to the CPU coolers is unobstructed and that the fans cooling the CPU are operating normally. There are temperature monitoring programs available that can tell you how close to threshold your CPU is getting, as well as fan speed and performance. Common programs include SpeedFan, CoreTemp and many others.

coretemp

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s