How to create performance counter instance names for two different iis applications

asp.netperformance-counters

I have several iis servers setup visibly identically in different environments (Dev/Test/Staging/etc). Within iis, I have an app pool "MyApplicationAppPool" and three web applications running within that app pool: MyApplication1, MyApplication2, MyApplication3.

When I open up perfmon and try to monitor the performance counter instance associated with an application, I can't seem to find all of them. For instance, I can find

\SERVERNAME\ASP.NET Apps v2.0.50727\_LM_W3SVC_1_Root_MyApplication1
\SERVERNAME\ASP.NET Apps v2.0.50727\_LM_W3SVC_1_Root_MyApplication3

But I can't find

\SERVERNAME\ASP.NET Apps v2.0.50727\_LM_W3SVC_1_Root_MyApplication2

My Question: What makes these "instance names" show up in perfmon? Why do some applications seem to create an instance name but others don't?

I'm running on IIS6 on Windows Server 2003

Best Answer

There seems to be a simple answer to this question. The Instance Name does in fact represent a web "application" and each application can be tracked in perfmon separately. If the web application does not have a place in memory at a particular point in time, the instance name will not appear in perfmon. To have it appear, you simply have to make a call to one of the asp.net web pages or services in that application. Subsequently, load the perfmon add counter window and the new instance name will be available