我有一些perfmon性能计数器,我想跟踪一个特定的ASP.NET应用程序在一段延长的时间,比如一周或一个月。 问题在于,perfmon计数器通常是以stream程为中心的,而不是以ASP.NET应用程序为中心的,或者以AppPool为中心的。 所以,例如,我可以绑定柜台
.NET CLR Memory performance counters\# Gen 0 Collections
到一个特定的IIS工作进程(这令人讨厌的是,通过w3wp,w3wp#1,w3wp#2来识别 – 但为了解决这个问题,请参阅如何将'w3wp'进程名称转换为PID或用户名? w3wp#29) ),但我似乎无法将其绑定到“正在运行ASP.NET Application X或AppPool Y的任何进程,现在或未来”。这意味着,如果IIS回收工作进程,或者如果有人重新启动IIS,或重新启动计算机,那么我的perfmon日志不能指望跟踪相同的Web应用程序。
是否有一些技巧,即使工作进程(例如w3wp.exe)重新启动,机器重新启动等,使用perfmon来监视给定的webapp?
我在这里find了几个可能的答案,但是他们并不觉得100%正确(尽pipe我会解释为什么他们可能是正确的):