IIS, multiple CPU cores, application pools and worker processes - best configuration for a single site?
Asked Answered
R

2

10

We use Kentico CMS and I've exchanged emails with them about a web garden deployment.

We have a single site running on a server with 8 cpu cores. In line with Kentico's advice, we have not altered the application pool web garden setting from the default i.e. it is set to a maximum number of worker processes of 1.

Our experience is that the site only uses one of the cpu cores - the others are idling. When I emailed them about this, their response was that the OS/IIS would handle this and use other cores as necessary even though the application pool only has a single worker process.

Now, I've a lot of respect for the guys at Kentico, but this doesn't seem right to me?

Surely, if we want to use all cores, we need to permit eight worker processes (and implement session state storage in SQL server)?

Many thanks

Tony

Roughage answered 9/12, 2009 at 10:56 Comment(3)
You might also want to post this question on www.ServerFault.comBlacking
I have tried running a test of doing multiple request to the web application pool and yes, all cpu cores are being used with maximum worker process = 1. I observed this in Resource Monitor.Pi
@Pi Did you test for ASP.NET or classic asp? I have 12 cores and IIS is just using 1. My application pool is setup to .NET CLR Version v4.0 and the Managed Pipeline Mode is set to Classic.Phoenician
B
5

I would suggest running perfmon for a 24 hours and see if you can determine what resources are being used. Indeed they might already be running on all cores . . . Also, if their web app is a heavily threaded system, then it will take full advantage of multiple cores(at least ours does). Threads, not worker processes, are what actually count for processor utilization.

Bartonbartosch answered 12/12, 2009 at 10:56 Comment(1)
I have tried a test by monitoring the cpu load in Resource Monitor. Then I run multiple request to the web and I can see that all CPUs were being used, the Application Pool is set to use Maximum Worker Process = 1Pi
Z
2

Not sure if you got an answer on ServerFault, at any rate ASP.NET is multi-threaded and in a single worker process there are several threads, each serving a single request.

Zen answered 11/12, 2009 at 16:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.