IIS 6.0 Health Monitoring and ASP.NET Applications

IIS 6.0 includes health monitoring for IIS worker processes (w3wp.exe).  Unfortunately, from a .NET developer's perspective, this isn't very useful, and is actually less useful than the health monitoring done by ASP.NET when using IIS 5.0.

 

IIS 6.0 can monitor for several unhealthy conditions: too much memory consumption, excessive CPU usage, and non responsiveness (failure to echo pings).  There is also this concept of orphaning, where the unhealthy process isn't terminated, it just isn't sent any more work.  Unfortunately, orphaning is only implemented for non responsiveness.  For excess memory or CPU usage, the unhealthy worker is simply terminated.

 

This creates a situation where there isn't much you can do to investigate excessive memory or CPU usage.  ADPlus doesn't help because a break point exception isn't raised as it was in IIS 5.0.  You can get an attached debugger to break at process shutdown, but by that time almost everything having to do with .NET has already been released.

 

If you need to troubleshoot excessive memory or CPU usage, you'll need to monitor by some other means than IIS 6.0 health monitoring and break into w3wp.exe by attaching a debugger.  Fortunately, IIS 6.0 is smart enough to suspend pinging when a debugger is attached.

Print | posted @ Monday, February 20, 2006 1:13 PM

Comments on this entry:

No comments posted yet.

Your comment:

Title:
Name:
Email:
Website:
 
Italic Underline Blockquote Hyperlink
 
 
Please add 3 and 4 and type the answer here: