Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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

like image 463
tony.wiredin Avatar asked Dec 09 '09 10:12

tony.wiredin


People also ask

Why would you need more than one application pool in IIS?

When using multiple application pools, you can use different Windows accounts on each application pool. This can not only enhance security, but it can also help when trying to track down performance issues. Pros: Your sites will be isolated from each other.

How prevent CPU usage 100% because of worker process IIS?

Fix high CPU usage in the IIS worker process. To fix the high CPU usage, you will need to do two things: Eliminate the blockages causing poor performance under high CPU usage (making your workload more elastic). Reduce CPU usage of the application code, to avoid CPU overloads and be able to handle more traffic.


1 Answers

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.

like image 61
TheEruditeTroglodyte Avatar answered Sep 22 '22 01:09

TheEruditeTroglodyte