关于Stack Overflow上ASP.NET最大连接数限制提问的一个思考

原文地址:Why request queuing is high even when request executing is below its limit?

We are using below settings

  • Target Framework : .Net 3.5 Framework
  • Application Pool :.Net Framework v2.0.50727 with Managed pipeline mode – Integrated
  • And, no of CPU is 8 so maxconcurrentRequestperCPUx8=96
  • RAM : 24 GB

With Default Settings in machine.config and aspnet.config

Wed did testing with ACT and took performance counters. 

ASP.NET Apps v2.0.50727(_LM_W3SVC_2_ROOT)\Requests Executing

enter image description here

ASP.NET v2.0.50727\Requests Queued

enter image description here

 

In aspnet.config

<system.web>
      <applicationPool maxConcurrentRequestsPerCPU="5000" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000"/>
 </system.web>

In machine.config

<system.web>
    <processModel autoConfig="false" maxWorkerThreads="4095" maxIoThreads="4095"    minWorkerThreads="2047" minIoThreads="2047" />
</system.web>

And provide Application Pool Queue Limit=5000 Now we have very less request queuing comparatively and high request executing as below snapshots depicts!!

ASP.NET Apps v2.0.50727(_LM_W3SVC_2_ROOT)\Requests Executing

enter image description here

ASP.NET v2.0.50727\Requests Queued

enter image description here

But surprisingly avg. response time per seconds in ACT has not improved.

So I have below questions…

1)  Why there is request queuing even when request executing is below its limit (in my case no. of CPU x maxconcurrentrequestperCPU = 8 x 12 = 96)?

2)  Even making changes to aspnet.config, machine.config and providing Application Pool Queue Limit=5000, why request queuing is observed?

3)  Why ACT response time has not improved as Request Executing Counter is higher?

posted @ 2014-12-10 23:00  llopllpo  阅读(285)  评论(0编辑  收藏  举报