My ASP.net site sometimes experiences quite long periods of hanging.
I need help to understand why it happens and whether it is possible to fix the problem by changing some IIS settings. Site is hosted on IIS 7.5 Window 7 x64.
I have collected some information from the performance monitor:
When load is high and number of anonymous users reach 10 (which seam to be a limit for Windows 7) site stops responding to client request for ~ 1.5 minute. During the downtime number of opened connections continuously growth. At some point server suddenly becomes alive and responds to all pending requests. CPU usage doesn't exceeds 50% and there is enough free memory. Attempts to reproduce the situation on another computer where not successful.
Do you have ideas about the reason of such IIS downtime?
UPD
I have patched Windows, now it allows to have more than 10 connections, but problem is still there. During hang periods even simple get requests for static html pages doesn't work so it seems to be something connected with IIS, not with application behavior.
See IIS limits imposed by Operating System version
Windows 7 (IIS v7.5)2 Starter: No IIS Home Basic: No IIS Home Premium: simultaneous request execution limit of 3, allows multiple sites Business: simultaneous request execution limit of 10, allows multiple sites Enterprise: simultaneous request execution limit of 10, allows multiple sites Ultimate: simultaneous request execution limit of 10, allows multiple sites
Also Windows Vista/7 IIS Concurrent Connection Limits
Instead of blocking the HTTP connections above the maximum number of connections limited in IIS 6, IIS 7 will now queue any new requests, an allow limited number of concurrent connections at the same time.
If you want to handle more than 10 concurrent connections with IIS you need to use a server operating system - these have no limits on the number of concurrent connections.
That said, that on its own doesn't explain why the Requests/Sec is 0 (IIS should still be processing requests, just not more than 10 concurrently). My guess is that your ASP.Net application had some sort of issue that caused it to stop processing requests (e.g. a database lock). The result would be that more and more connections get queued up until all 10 current connections are stuck waiting on the same thing and the server stops handling requests completely - in short the concurrent connections thing seems like a symptom, rather than the original cause.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With