在Windows Server 2003中的perfmon中,有一些计数器对象可以获取每个进程的处理器时间和内存工作集统计信息。唯一的问题是,在具有多个应用程序池的环境中,无法可靠地识别正确的工作进程。在perfmon中,它们都被称为“w3wp”,如果有多个,它们是w3wp,w3wp#1,w3wp#2,依此类推。即使这些名称也不可靠 - 数量取决于首先启动的名称,并且当应用程序池被回收时显然会发生变化,因为该进程已被销毁并重新启动。
我没有找到任何特定于ASP.NET的计数器,并且出于某种原因,我的IIS对象不会分隔实例 - 只有一个“全局”实例。
最终,我只想要特定IIS应用程序池的“%Processor Time”和“Working Set”计数器。有什么建议吗?
答案 0 :(得分:2)
我们总是收集所有w3wp进程的统计信息,我们会捕获PID。这是Process组中的一个计数器。
在Server 2003的system32文件夹中有一个名为IISApp.vbs的脚本,它将列出所有进程及其PID。您需要运行它来捕获PID。
我确信必须有更好的方法,但是当我们需要进行特别监控时,这种方法就有用了。
答案 1 :(得分:1)
如果工作进程长时间处于空闲状态,则可能不会出现w3wp实例。 UI界面必须在很短的时间内使用,以便工作进程(w3wp)可以显示在实例中。