Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have 4 Windows 2003 servers running IIS 6. These servers host a bunch of unique web sites (in that they are all different in build/architecture/etc). The code behind these sites range from straight HTML, classic ASP, and 1.1/2.0/3.x flavors of .NET. Some (most) of the sites use a SQL backend, which is hosted on one or two different servers – not the IIS servers themselves. No virtualization on these servers and no load balancing for these particular sites.

The problem I’m running into is coming up with some baseline metrics to determine, or basically come up with a “baseline score” to know when a web server has reached its hosting limit.

Today, some basic information about each server is used: how much bandwidth does the server pump out, hard drive space availability, and basic (very basic) RAM & CPU utilization (what it looks like at peak traffic times.)

I would be grateful if those of you that are 1000x smarter than I am could indulge me with your methods of managing IIS environments. Whether performance monitoring specifics, “score” determination as I’m trying to determine, or the obvious combination of both.

Thanks in advance.

share|improve this question

This has a lot of topical information:

It seems due to the way IIS uses processes, its a bit hard to tell which "site" is actually using the resources (as they are matched to a process, not a thread within a process), unless you match the log entries with perf logs.. and that could be a bit of a *.. annoyance.

Depends on your process pool settings I suppose.. you might be able to use "Process Explorer from Sysinternals" to determine which site is using which process, or processes etc, it handily provides graphs of individual process usage, and its free. (I like being able to pause threads within a process.. damn handy that!)

share|improve this answer


  • CPU
  • Memory
  • Network (though that really should not be an issue)
  • IO (should NOT be an issue).


  • CPU
  • Memory
  • IO. Really - the counter "Seconds per Request" is critical.

The rest is really up to you. But these would be the baseline I would look at.

Full usage (CPU) ok - for SMALL amounts of time (15 seconds MAXIMUM). Note that this is "on all cores".

share|improve this answer
Would you recommend the built in Win performance monitoring for the items you list above? I might be the only one, but the performance monitoring app has always been daunting to me. Probably because there is so much there that I would not use. I need to find to good tutorial on how to use it. Thanks. – bsisupport Mar 18 '10 at 15:29
The built in monitoring is great enough - seriously, it is what I use for troubleshooting. Just identify the counters you are really interested in ;) SQL SVR 2008+ can actually collect SQL Server performance metrics itself and dump them into a central database. Check… – TomTom Mar 18 '10 at 15:39
Thank you very much!! – bsisupport Mar 18 '10 at 16:07

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.