问题
In perfmon in Windows Server 2003, there are counter objects to get per-process processor time and memory working set statistics. The only problem is that in an environment with multiple application pools, there is no way to reliably identify the correct worker process. In perfmon, they are all called "w3wp", and if there is more than one, they are w3wp, w3wp#1, w3wp#2, and so on. Even these names are unreliable - the number depends on which one started first, and obviously changes when an app pool is recycled because the process is destroyed and restarted.
I haven't found any ASP.NET-specific counters, and for some reason, my IIS object doesn't separate instances - there's only one "global" instance.
Ultimately, I just want the "% Processor Time" and "Working Set" counters for a specific IIS App Pool. Any suggestions?
回答1:
We'd always collect the stats for all the w3wp processes, and we would capture PID. This is one of the counters in the Process group.
There's a script that site in Server 2003's system32 folder called IISApp.vbs, that will list all the processes and their PIDs. You will need to run this to capture the PID's.
I'm sure there has to be a better way but this worked when we needed to do adhoc monitoring.
回答2:
The w3wp instance may not appear, if the worker process is idle for a long time . The UI interface has to be used for small course of time , so that the worker process (w3wp) can show up in the instances.
来源:https://stackoverflow.com/questions/372080/reliable-way-to-see-process-specific-perf-statistics-on-an-iis6-app-pool