We have an ASP.NET application. It does not use async pattern - it's a plain MVC.
I have been looking at Request Executing counter and noticed that once it hits around 70 the application becomes unresponsive.
The request I have been sending are long running so it seems that the server might have got clogged up.
- Is there any setting that controls this value (and its limits)?
- How could I determine if the default valu开发者_JAVA技巧es are right for my case?
- What is the healthy range for a production ASP.NET application?
Thanks, Piotr
70 simultaneous requests for one server may well indeed be too many. You may well find that the requests are themselves interacting with each other, especially if there is database work happening in the background.
You'll probably want to consider passing off the long-running requests to a background service of some kind. Consider creating a Windows service that runs in the background, then have a FIFO queue that despatches messages to this service.
When the service is complete it can then notify the Web page of its result: AJAX is a good technology to use here.
If you do decide to change the defaults the canonical reference for ASP.NET, processes and threading is this MSDN article. Keep a good eye on your server performance, though, as increasing overall CPU beyond about ~80% is generally counter-productive; odd things happen at the edge.
Check out http://iistuner.codeplex.com/ it solved all of our problems. It basically fixes all wierd and hard to find settings with one click.
精彩评论