![当“排队请求数”始终达到数百时,ASP.NET 的“请求等待时间”怎么会为 0?](https://linux22.com/image/513787/%E5%BD%93%E2%80%9C%E6%8E%92%E9%98%9F%E8%AF%B7%E6%B1%82%E6%95%B0%E2%80%9D%E5%A7%8B%E7%BB%88%E8%BE%BE%E5%88%B0%E6%95%B0%E7%99%BE%E6%97%B6%EF%BC%8CASP.NET%20%E7%9A%84%E2%80%9C%E8%AF%B7%E6%B1%82%E7%AD%89%E5%BE%85%E6%97%B6%E9%97%B4%E2%80%9D%E6%80%8E%E4%B9%88%E4%BC%9A%E4%B8%BA%200%EF%BC%9F.png)
我很好奇,为什么性能监视器声称我始终有几百个 ASP.NET 3.5 请求“排队”。尽管“请求等待时间”始终为 0,但“请求排队”的“ASP.NET v2.0.50727”性能计数器却徘徊在几百个范围内。如果每个请求都从不等待哪怕一毫秒的一小部分,那么它怎么可能在队列中呢?
“ASP.NET Apps v2.0.50727”的“应用程序队列中的请求”和“请求等待时间”计数器始终为 0。
答案1
在 PerfMon 中,确保计数器的 .NET 版本与应用程序使用的版本相同。
看来您正在为应用程序使用.NET 3.5,但您正在查看.NET 2.0计数器。
答案2
这确实是一个老问题,但答案如下:https://serverfault.com/a/579180
此计数器的值是最近请求在全局队列中等待的毫秒数。这不包括请求在应用程序队列中等待的任何时间。此计数器的阈值为 1,000。