Note that there are some explanatory texts on larger screens.

plurals
  1. POASP.NET Requests Queued causes website to crumble. SQL backend, IIS6
    text
    copied!<p>I have inherited a somewhat complex system (and problem) that I need help with.</p> <p>I have a webserver w/ the following specs:</p> <ul> <li>Hardware: <ul> <li>Server 2003 32bit</li> <li>IIS 6</li> <li>8 cores (16 w/ hyperthreading)</li> <li>12gb RAM </li> <li>ASP.NET site</li> <li>3 app pools, so 3 instances of w3wp.exe running.</li> </ul></li> </ul> <p>This system serves a large number of people and bandwidth is fairly constant during business hours reaching ~ 68,000kbit/s</p> <p>There are moments when the system "comes down" - site gets very slow which generates a lot of phone calls. Things usually slow down for 60 seconds, but has varied greatly in length. Sometimes only a few seconds and sometimes 3 minutes or more. </p> <p>I have my app pools set to recycle somewhere about 600mb of consumed memory. That's not exact but they recycle on their own with much success. At times I recycle the "main" pool manually to clear the problem I'm describing. </p> <p>This is what I know is going on when things are running slow.</p> <ul> <li>Network bandwidth takes a considerable dip. </li> <li>Requests Queued in the ASP.NET performance counters goes up. </li> <li><p>In tandem w/ the Requests Queued rising page latency increases. (I employ a simple ASP page that makes a SQL call and just says "The system is live" - this page is monitored for latency)</p></li> <li><p>Overall CPU usage rises. </p></li> <li>Overall memory consumption of w3wp.exe rises. </li> </ul> <p>In my mind here is what I imagine is happening. </p> <p>Someone asks the system to generate a report or glob of data. This spins up a process that consumes a large number of threads (ie, all available threads) This causes all other requests to the system to wait in the ASP.NET que pool which essentially kills the site. The lack of activity causes the network traffic to dip. </p> <p>I have read many articles about thread queues, thread pools, etc. This is a good example: <a href="http://williablog.net/williablog/post/2008/12/02/Increase-ASPNET-Scalability-Instantly.aspx" rel="nofollow">http://williablog.net/williablog/post/2008/12/02/Increase-ASPNET-Scalability-Instantly.aspx</a> and does what I believe is a clue to help me solve my problem... but I'm not sure. My "Machine.config" file for the version of asp.net that I am using does not specify any of the thread values listed in the article so we are default for everything which I believe is incorrect given our situation. </p> <p>If you were me; What would you do next? Where do you think the problem is? </p> <p>edit: Here is a screenshot. It should be obvious when the problem is happening. <a href="http://i.imgur.com/5BJlq.png" rel="nofollow">http://i.imgur.com/5BJlq.png</a></p> <p>edit: </p> <p>I want to change these values for our setup. A few questions first: </p> <p>1) After making the changes, what needs to be restarted for them to take effect? </p> <p>2) How do these settings look for a system with 8 physical cores?</p> <pre><code>maxconnection = 96 maxIoThreads = 100 maxWorkerThreads = 100 minFreeThreads = 704 minLocalRequestFreeThreads = 608 </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload