1

在 Windows Server 2003 的 perfmon 中,有一些计数器对象可以获取每个进程的处理器时间和内存工作集统计信息。唯一的问题是,在具有多个应用程序池的环境中,没有办法可靠地识别正确的工作进程。在perfmon中,它们都被称为“w3wp”,如果有多个,它们是w3wp、w3wp#1、w3wp#2,以此类推。即使这些名称也不可靠 - 数量取决于哪个最先启动,并且在应用程序池被回收时显然会发生变化,因为进程被破坏并重新启动。

我没有找到任何特定于 ASP.NET 的计数器,并且由于某种原因,我的 IIS 对象没有分隔实例——只有一个“全局”实例。

最终,我只想要特定 IIS 应用程序池的“% Processor Time”和“Working Set”计数器。有什么建议么?

4

2 回答 2

2

我们总是收集所有 w3wp 进程的统计信息,并且我们会捕获 PID。这是进程组中的计数器之一。

在 Server 2003 的 system32 文件夹中有一个名为 IISApp.vbs 的脚本,它将列出所有进程及其 PID。您将需要运行它来捕获 PID。

我确信必须有更好的方法,但是当我们需要进行临时监控时,这很有效。

于 2008-12-16T17:47:59.063 回答
1

w3wp 实例可能不会出现,如果工作进程长时间处于空闲状态。UI 界面必须使用一小段时间,以便工作进程 (w3wp) 可以显示在实例中。

于 2012-01-17T14:38:02.440 回答