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.

2 Answers 2


This has a lot of topical information: http://technet.microsoft.com/en-us/library/bb727100.aspx

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!)




  • 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".

  • 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, 2010 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 sql-server-performance.com/articles/per/…
    – TomTom
    Mar 18, 2010 at 15:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy