If I have the poolname "WApp1" configured with a single application "WebS1" then why do I see 2 processes running in the Task Manager?
w3wp.exe -app "WApp1" -v "v40" -I webengine4.dll -a \. \ pipexx1 -h "path \ WebS1.config" -m0 -t510 -ta1
and the other similar
w3wp.exe -app "WApp1" -v "v40" -I webengine4.dll -a \. \ pipexx2 -h "path \ WebS1.config" -m0 -t510 -ta1
Thaks.
31 Answer
When an IIS server Application Pool is set to MaxProcesses > 1 you have established a "web garden", A process model that allows an web application to run as 1 or more processes on a single server. For the most part, this is not a useful technology, and you will find many wise people across the internet telling you that its almost certainly not worth doing. Web Gardens are thematically simmilar to the multi-server architecture called "Web Farms" with all the drawbacks (like the need for external session state persistence) and few of the advantages. Google web garden and you will see the many detractors.
The actual number of processes running at a time is determined by whether the hardware is NUMA-capable, and what specific NUMA-related settings are used. see here for more details:
2When this configuration is set to 0 on non-NUMA hardware, the default value of 1 is used. When it is set to 0 on NUMA hardware, IIS will launch as many worker processes as there are NUMA nodes on the system so that there is a 1:1 affinity between the worker processes and NUMA nodes. On such systems, you should set the maxProcesses value to 0 to achieve maximum performance.