Wednesday, February 20, 2013

Windows 2012 for the DBA Setting Your Server to High Performance



Hello Dear Reader!  I’ve been doing a lot of work with Windows Server 2012 lately.  The interface is wildly different from what we’ve gotten used to in the past.  

If you’ve worked with Windows 8 or Windows Phone at all, then the UI will come as less of a shock to you. 

 If you haven’t, then hold on to your pants.

This creates a lot of fun in figuring out how to do things we already thought we knew how to do.

“So Balls”, you say, “What did you know how to do that you don’t now know how to do?  Did that even make sense?”

Yes Dear Reader it did.  Ever since the Windows Servers have been given the same GUI upgrades as the user/Windows upgrades (Thank GOD there was no Windows Server ME), ever since Perfmon has been renamed 50 BAGILLION times, there have been DBA’s scratching their heads going ARRUUU!?
I JUST WANT PERFMON!!!!!


Continuing that trend is the way CPU performance is handled.  

Thanks to brilliant MVP’s such as Glenn Berry(@GlennAlanBerry | Blog) and Brent Ozar (@BrentO | Blog) we’ve had guidance on how to use CPU-Z, see Glenn’s Blog on this subject, and how Power Saving Options are bad, see Brent’s Blog on the subject



Now we have Window’s Server 2012 and we know we should check our power saving options, and we should use CPU-Z.  When we get a bad reading how do we change it?

SET YOUR WINDOWS POWER PLAN

There is a Windows 2012 Performance Tuning document that is worth a read, Click here to download the Word Doc.  If you have owned a laptop in the past 5 years with Windows Vista on up on it you are familiar with the power management plans.  Interestingly enough, or not based on your viewpoint, this is in Windows 2012 as well.   Below is an exert from the Document

*DISCLAIMER RECOMMENDED SETTING IS THAT OF MICROSOFT NOT SQLBALLS, KEEP READING TO SEE MY RECOMMENDED SETTING..... HINT HINT IT'S NOT THE SAME AS MICROSOFT'S*

Plan
Description
Common applicable scenarios
Implementation highlights
Balanced (recommended)
Default setting. Targets good energy efficiency with minimal performance impact.
·         General computing
Matches capacity to demand. Energy-saving features balance power and performance.
High Performance
Increases performance at the cost of high energy consumption. Power and thermal limitations, operating expenses, and reliability considerations apply.
·         Low latency applications
·         Application code that is sensitive to processor performance changes
Processors are always locked at the highest performance state (including “turbo” frequencies). All cores are unparked.
Power Saver
Limits performance to save energy and reduce operating cost.
·         Deployments with limited power budgets
·         Thermal constraints
Caps processor frequency at a percentage of maximum (if supported), and enables other energy-saving features.

Dear Reader I’m going to tell you right now, Balanced is not recommended.  High Performance is.  If you’re not sure why go read Glenn and Brent’s blogs about Green options and how they will hinder your CPU performance.

Now don’t get me wrong I’m all about the environment, I love me some outside, but when I have a server in a rack the only option for me is High Performance.  

The fact that Balanced is the DEFAULT is a HUGE MISTAKE in my opinion.  If you know how to find and change your power settings, have done the due diligence to understand what your usage consumption is vs. your peak hours, and care about the cost of your data center to the point that this matters, then change it.  Also stop reading here.

If like most of us you have a DAY job, get really busy, and expect your server to perform with the power and performance you purchased it at, then keep reading.

I used CPU-Z to find a couple of facts out right away.  


My server with 24 cores each running at 2.5 GHZ is running at 1.1 GHZ.  YIKES!  That’s ½ of this expensive box that we paid for.  So now I’m going to open up a Command Prompt in Administrator Mode. 


To do this go to the upper right hand corner, get the Spy Glass Icon, and type cmd, Right Click on the Icon instead of Clicking on it, and then click the option at the bottom of the screen that says Run As Administrator. (You can also pin this to the start tiles window, but one thing at a time).

Now in our Command Prompt type powercfg –LIST to see all of the active plans.  Your currently selected plan will be denoted with an *.




We can see that Balanced is currently select, as this is the default out of the box configuration.  So let’s change this.  Make note of the GUID above because you’re going to need it.  The command is powercfg –SETACTIVE <guidoftheplanyouwant>.



We run another powercfg –LIST to check our options and we see that High Performance is now our default.   Another look at CPU-Z and everything looks right as rain.



WRAP IT UP

For more on this subject Dear Reader, visit the Windows Technet site on How to Set the Default Power Plan for Windows 2012 by clicking here

As for Windows Server 2012 I must profess, despite the out of the box options, I like it.  Always on is more stable, It reads ISO files without a 3rd party installer, and while the interface is different I’ve been able to find a lot of configuration items that were previously in hard to reach places.  Basically more blogs to come.

As Always Dear Reader Thanks for Stopping by and I hope this helps you get the most out of your server!

Thanks,

Brad