We are running a ASP.Net application that is also calling some legacy COM objects. We are running into an issue where with increased number of users COM object is creating a bottle neck since it is executing on same thread/process as the app pool.
We currently have a hardware load balancer in place and use sticky sessions to balance the load between 2 servers. Unfortunately this does not seem to be enough. We did some testing using multiple app pools, each running same application, and performance seems to improve significantly.
I have couple of questions.
- Is it wise to add multiple app pools, all pointing to the same physical files?
- We would still use hardware load balancer. All requests comming to app.xxxxxx.com would get redirected to for example app1.xxxxxx.com, app2.xxxxxx.com, app3.xxxxxx.com, app4.xxxxxx.com . Each one being an app pool on the same server. Is this a common practice?
- Server has 16 cores. Would setting processor affinity make sense, to dedicate each app pool to run on 4 cores?
- We are stuck using InProc sessions. Because of this we are not even considering using Web Garden. Plus from what I read Web Garden is more for improving availability than performance.
I am a developer by trade and it fell on me to research/perform these tasks and a lot of this has been a learning process for me.