Monitoring w3wp.exe Process (www worker process)

One of the important process that you need to monitor while doing Performance testing is w3wp.exe process. It is an IIS related process and runs whenever IIS is configured in Worker Process Isolation mode. By default, IIS runs in Worker process Isolation mode. Each site hosted on IIS Server has it's own app pool. This app pool will have an instance of w3wp.exe process running.

When you are doing Performance testing of a web application, make sure that you log the Perfmon counter for %CPU utilization for the concerned w3wp.exe process. This counter is available under Process Object. This counter would give the %CPU consumed by w3wp.exe process while you were doing Performance testing.

Consider a situation where you haven't logged the counter for w3wp.exe process and you only have overall %CPU utilization on the web server. How can you be sure that obtained %CPU utilization is caused by IIS process? It could be due something running in the background on the Web server or maybe caused by Anti-Virus running on the server. Once you have w3wp.exe %CPU counter, you can accurately say that out of X% CPU utilization on web server, Y% was caused by w3wp.exe process.

In case, you find the %CPU of w3wp.exe much much lesser than the overall %CPU utilization, it means that there was another process that caused the high %CPU utilization. Below is the sample Perfmon graph comparing the overall %CPU utilization (red) and %CPU utilization of w3wp.exe process (brown).