Management Pack for IIS Application Pool Processor Performance

IIS application pools run under separate W3WP.EXE processes (called “worker processes”). Monitoring CPU performance for application pools mean monitoring the processor performance for these processes.
The tricky part though is that you have to determine which W3WP.EXE process maps to which application pool, and you can’t just map processes IDs (pid) to application pools one for all, since those processes get a new process ID on a regular basis.
This sample management pack shows how a timed script can map an application pool to its current worker process and create a custom performance counter telling the current CPU usage. This script is freely based on IISAPP.VBS, which is a script built into the operating system, to list application pools and their worker processes. Since OpsMgr 2007 discovers IIS 6.0 application pools by default, all there was left to do was to attach this timed script to the “IIS 2003 Application Pool” type.

The MP also includes:
- a monitor to integrate processor performance in the overall health of an application pool.
- alerting based on event logs triggered by the script
- a few views for the monitoring space of the console

 

App Pool Performance.zip