Get Help:Ask a Question in our Forums|Report a Bug|More Help Resources
Last post Nov 09, 2012 04:16 PM by Shailendra Saxena
May 25, 2011 06:23 AM|LINK
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! :)
May 25, 2011 06:52 AM|LINK
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.
May 25, 2011 08:22 AM|LINK
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.
May 25, 2011 08:32 AM|LINK
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:-
May 25, 2011 08:59 AM|LINK
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?
May 25, 2011 03:04 PM|LINK
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.
May 26, 2011 12:39 AM|LINK
sorry I'm saying it wrongly, I mean worker thread not worker process.
Anyway I'll try to optimize the processModel section, thanks!
Nov 09, 2012 04:16 PM|LINK