Hi everyone!
We have been having some performance issues with our application for the past couple of weeks. I've come close to posting a couple of times but due to some of our interesting architecture and implementation details, I thought it would be too difficult to try to post enough information for anyone to provide any sense. Part of our architecture involves spawning requests on our app server on another thread ala Running ASMX Web Services on STA Threads.
However, I think I have a couple of definitive things to post for feedback.
Our architecture involves three web servers for our presentation layer calling web services (and some WCF) on two app servers in our middle tier. A large portion of our traffic then calls through COM proxies to our back-end (Tandem). Lately we have been getting a lot of failures and timeouts on the app server level.
Our IIS web servers are configured as follows: - Connection timeout: 120 seconds - Enable HTTP Keep-Alives: Checked
Our IIS app servers are configured as follows: - Connection timeout: 20 seconds - Enable HTTP Keep-Alives: Checked
Questions:
- Shouldn't our app server timeout be much closer to our web server timeout? We are pretty sure the answer should be yes and are going to move forward with changing at least one of the app servers to 60 seconds. We would then monitor on Monday and see if the other started throwing errors during the heavy traffic periods.
- Does having Keep-Alives enabled between a web server and app server provide any value? Our thoughts are that it does provide value and IIS would just re-use those connections between the two servers. We know they provide value between the web server and clients, but not sure about between the two server environments.
Thanks, Matt