Windows 性能计数器 ASP.NET 应用程序:为什么我的 www-service 实例不可见?

Windows 性能计数器 ASP.NET 应用程序:为什么我的 www-service 实例不可见?

一位客户抱怨说,一个基于 Web 的工具加载速度非常慢,我想使用管理工具/性能来监控请求执行时间。因此,我选择 ASP.NET Apps v2.0.50727 作为性能对象,选择请求执行时间作为性能计数器。但是,在“从此列表中选择实例”中,我找不到我的网站的实例 ID。该网站使用 HTTPS——这可能是问题所在吗?任何提示都值得赞赏。

答案1

问题答案:该网站本身已被停止,因此没有出现在实例列表中。

答案2

正如您所指出的,如果网站停止运行,就会发生这种情况。性能监视器中的信息是实时的,并且如果应用程序池不仅启动了,而且还收到了一些流量使其启动,则只有一个 w3wp.exe 工作进程。

此外,您不仅需要在网站停止时才需要担心这一点。性能对象是按 PID 定义的。每当应用程序池回收时,PID 都会发生变化,这在 IIS 中很常见,因此如果您在 perfmon 中监视某个进程,请确保经常更新它,或者使用 System Center Operations Manager 之类的工具,它可以为您维护应用程序池到 PID 的映射。

另外,如果您还没有这样做,下面是如何让 PID 显示在 perfmon 中的方法:http://weblogs.asp.net/owscott/archive/2007/03/19/registry-change-for-perfmon-and-pid-data.aspx

答案3

如果您使用 perfmon 中的 pid 注册表更改,那么您可以通过系统事件查看器找到该 pid。

为应用程序池“[app pool]”提供服务的进程 ID 为“[pid]”的工作进程已请求回收,因为该工作进程已达到其允许的处理时间限制。

相关内容