Weekly quickTIP

Paging Mr. PerfMon

Establish a baseline for performance easily and you'll know just how slow is slow.

Perfmon? Haven’t we been here before? Seriously though, I’m always surprised when I talk with systems administrators who haven’t enabled any performance counters on their servers. If you aren’t aware of the historical performance of your servers, then how can you compare today’s "it's slow" with the "it's slow" from yesteryear?

Because of the changes in hardware speeds due to Moore’s law in relation to the number and scope of operating system enhancements over the years, many of our servers now sit at 3 percent utilization. So, many of us have forgotten how to effectively do performance management on our systems. If our systems are flipping between 0s and 1s for 97 percent of the time just to occupy a bored processor, there’s not much to manage.


However, the movement to systems virtualization means that we’re now just starting to begin squooshing lots of servers together to eliminate all that downtime and squeeze more useful processing out of our lazy processors. One of the key skills that is back in vogue because of this is performance monitoring and management in our systems.

If you haven’t yet enabled performance counters on your servers, consider enabling at least a few critical ones so you can keep a baseline of the performance of your servers. Some of the critical ones to keep are:

  • Disk\% Free Space
  • Disk\% Disk Time
  • Disk\Current Disk Queue Length
  • Disk\Disk Reads and Writes/Sec
  • Memory\Available Mbytes
  • Memory\Pages/sec
  • Page File\% Utilization
  • Processor\% Processor Time
  • Processor\Interrupts/sec
  • System\Processor Queue Length
Tech Help—Just An
E-Mail Away

Got a Windows, Exchange or virtualization question or need troubleshooting help? Or maybe you want a better explanation than provided in the manuals? Describe your dilemma in an e-mail to the MCPmag.com editors at editor@mcpmag.com; the best questions get answered in this column and garner the questioner with a nifty Redmond T-shirt.

When you send your questions, please include your full first and last name, location, certifications (if any) with your message. (If you prefer to remain anonymous, specify this in your message, but submit the requested information for verification purposes.)

Computers are deterministic creatures. What we mean by "deterministic" is that nothing inside them will change unless an external force acts upon them -- either from you, another computer or some bad software. Only if you know how your systems perform in normal situations can you identify when bad things are happening. Moreover, you don’t need complicated or expensive tools to do any of this. With Perfmon -- native to all Windows OSes, you can do this for no cost -- right out of the box.

About the Author

Greg is an independent author, speaker, and IT consultant, as well as a Founding Partner with Concentrated Technology. With nearly 15 years in information technology, Greg has developed extensive experience in systems administration, engineering, and architecture specializing in Microsoft OS, remote application, and virtualization technologies.  Greg is a Contributing Editor and columnist for TechNet Magazine, a former columnist for Redmond Magazine and Virtualization Review Magazine, and has authored or contributed to ten books and countless white papers and webcasts. His writing is regularly seen in publications like TechTarget online, e-books from Realtime Publishers, and the UK-based IT EXPERT Magazine.  He has also produced numerous video training series for CBT Nuggets.


Reader Comments:

Thu, Mar 20, 2008 Anonymous Anonymous

There is no useful information here. 'Perfmon is a useful tool. Water is wet.' Based on this page I WON'T spend money for the new book on Windows Server 2008. Lose the picture too.

Fri, Jul 27, 2007 PerfmonRookie Anonymous

While I agree with the assertion that most system admins don't know how to use perfmon, I don't feel like this article does those unwitting fellows any justice. It points out a few good counters, but how should we interpret them? What happens when "pages per sec" starts to fly over 100 or any other aribitrary # ? What thresholds are acceptable? When do I need to upgrade or change a resource? the lines for the counters you gave are pretty, but they are useless without some understanding of how to interpret them.

Wed, May 23, 2007 Network Admin Indianapolis

to 5/15/07 - Anonymous: Being able to diagnose issues using perfmon, goes back to baselining your servers with perfmon before production or right after production.
What I do is when a new server is built, and the production app/service/whatever is installed and configured (but before being turned loose). I run perfmon to capture all objects every 30 second for 12 hours (6am to 6pm). Which tells me the server at a complete idle state.
The day it is turned over to production and users are hitting it. I do the same thing for at least one day.
Then do it again the next week (different day). Repeat for another 4 weeks, on different days.

What you'll end up with (besides megabytes of log files), is a good idea of where the server is performing during its initial rollout.
Then, 6 months down the road when users/developers/mgmt start saying the server is running slow. Run it again and compare the counters against your baseline.
Thats the overall idea. Getting mgmt and the developers to understand this are another story.

Greg....Looks like I hit a communal nerve for a Perfmon for Dummies!!

Sat, May 19, 2007 DBAjr Anonymous

The future columns sound quite interesting, but in the mean time; is there a way (batch file, PowerShell, etc.) to automate the process of starting PerfMon? With specific settings, etc.?
Thanks!

Tue, May 15, 2007 Greg Shields Anonymous

Your request is heard and recognized. Although not specifically a "perfmon for dummies" piece, keep watching this space for an upcoming feature I've written on virtualization assessments. That feature includes a section describing the perfmon counters you should watch for as well as why they're important. It is part 1 of a 3-part series on virtualization. Secondly, for TechMentor in the Fall in Vegas I'll be giving an entire session on Perfmon titled "Top Tricks for Monitoring and Analyzing System Performance" that goes into deep detail on Perfmon usage. If neither of those are enough, please drop me a line to let me know! I'd be glad to do a "perfmon for dummies" piece if you feel it would be useful.

Tue, May 15, 2007 Anonymous Anonymous

Agree that it is a great tool. However, it is difficult to come across some solid documentation on how to benchmark your server with it, say on a daily or weekly basis, automatically. Would love to see some examples of that. I'll second te vote for the Dummies column (for perfmon, that is).

Tue, May 15, 2007 Anonymous Anonymous

I look at perfmon a lot. What I don't have is a set of reasonable expectations for what normal and heavy loads may be. If I have a normally idle system, putting a little load somewhere may look like a change - but my real problem is apt to be that something is waiting for another server/service to do something, and the system load is irrelevant.

Tue, May 15, 2007 ID10T_Sitter Chicago

Here's a vote for starting a Perfmon for Dummies column

Mon, May 14, 2007 Network Admin Indianapolis

While I love to see articles on perfmon & trying to teach Sys Admins on its merits, I've yet to come across an article that actually tells you how to automate it, or gives a Perfom for Dummies approach.
I've met too many Sys Admins who don't know about perfmon, don't want to know, or simply don't understand how to interpret the results.
I am by no means an expert on it, but having played with it since NT 4.0, I've been able to diagnose random "the servers running slow".
MS's Server Performance Analyzer is a good step for automating, but nothing beats perfmon in determining how the server is running.

Maybe you can start a Perfmon for Dummies column dedicated to interpreting perfmon data :)

Mon, May 14, 2007 Anonymous Anonymous

What - no script to automate this? :)

Add Your Comment Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above