locked
How many request can a web server handle at a time? RRS feed

  • Question

  • User-1838980021 posted

    Hi,

    I'm not sure which category I should post this too, so I put it here.

    We're performing some stress testing on my .net app, we log in 8 sessions of the application, for each session, we generate a call which will loop 8 times to call a web service hosted in another remote machine.

    The IIS that host my application is sitting on a Windows 2003 server.

    The application will output log file to a directory to log the timestamp of the process, from my observation, when we started all 8 session together, only 5 log file is created, the other 3 session will fail and the error show 'Page could not be displayed', once a session completed and i restart the next session it will create the log immediately, but there will be 5 log files only at any point of time.

    So I wonder is this the max request that can be handle by the web server? How can I find out what is the max request setting?

    I notice the Web Garden section in the app pool, the max worker is set to 1, what is the impact i change to  more than 1?

    Hope someone can advise me on this, as I getting quite confuse while reading the article on this topics. Thanks in advance! :)

    Wednesday, May 25, 2011 2:23 AM

Answers

  • User-481631678 posted

    I think that you better configure your ProcessModel Section of your config file. By default this is configured for development machine, and you have to set it properly for production environment. For details see 'ASP.NET Process Configuration Optimization' section in  this article:-


    http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, May 25, 2011 4:32 AM

All replies

  • User-1757793930 posted

    If you increase your Application Pools to greater than 1 you will run into some serious problems if you havent made provisions for that.

    By increasing your App Pool to >1 you are enableing the application to span across multiple instance of the application. Meaning your persistant session data may be lost when the application moves a user load to another app pool. To take advantage of this you must provision alternative state management  for the session state, application state etc.

    Now the other issue of creating log files.

    IIS can handle ALOT of requests and 8 its still warming up.. You provision 10's of thousands per second with a properly configured web application. Let me ask you another question these files that are being created where are they being created, how are they being created, is it possible that two sessions are trying to access the same file at the same moment therefore crashing into each other competing for the same file space?

    Have you tries turning off this logging system and giving your sessions a run and see whats happening? You may also want to look at setting up IIS loggin http://thelazyadmin.com/blogs/thelazyadmin/archive/2006/02/02/IIS-6-Logging.aspx.

    This will not crash into each other and is designed to support diagnosis of these issues.

    Hope this helps and hope everything goes well.

    Wednesday, May 25, 2011 2:52 AM
  • User-1838980021 posted

    Thanks for your prompt response! 

    I'm running this test without the logging at first, but as the performance is very slow, I descided to log the process and see which part of the code takes a longer time to complete.

    The log file is created using the TextWriter, whereby it'll write a line with 'Process A Start: <datetime>' and so on, it'll output a text file to a folder in the web server. The file is created with a GUID file name for each of the session (each button click that trigger the function). So I think the file is unique enough for each session. 

    Wednesday, May 25, 2011 4:22 AM
  • User-481631678 posted

    I think that you better configure your ProcessModel Section of your config file. By default this is configured for development machine, and you have to set it properly for production environment. For details see 'ASP.NET Process Configuration Optimization' section in  this article:-


    http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, May 25, 2011 4:32 AM
  • User-1838980021 posted

    Thanks for your suggestion!

    My web server is dual core, so that means it'll have 40 worker process, while I have 8 session open and each session making 8 calls to the web service, that means it'll be 64 request handle by these 40 worker process, so it could the reason why some session failed. Am I interpret it correctly?

    Wednesday, May 25, 2011 4:59 AM
  • User-481631678 posted

    Even on dual core machine, by default there will be only one worker process.

     

    One worker process can virtuall handle unlimited session. So even if you open 8 session and give 8 calls per session but still there will be only one worker process.

     

    Your request are failing due to some other reason. Try optimizing your processModel section as i mentioend earlier.

    Wednesday, May 25, 2011 11:04 AM
  • User-1838980021 posted

    sorry I'm saying it wrongly, I mean worker thread not worker process.

    Anyway I'll try to optimize the processModel section, thanks!

    Wednesday, May 25, 2011 8:39 PM
  • Friday, November 9, 2012 12:16 PM