14

for IIS7 Does a webapplication run faster when Maximum Worker Processes is more than one?

Christophe Debove
  • 6,088
  • 20
  • 73
  • 124

2 Answers2

24

By increasing the Maximum Worker Processes over 1 you're creating a Web Garden. So the short answer is: likely no... unless:

To quote Chris Adams an ex IIS PM's article I have flowers... should I get a Web Garden?:

Web gardens was designed for one single reason – Offering applications that are not CPU-bound but execute long running requests the ability to scale and not use up all threads available in the worker process.
The examples might be things like -
Applications that make long running database requests (e.g. high computational database transaction)
Applications that have threads occupied by long-running synchronous and network intensive transactions
The question that you must ask yourself -
What is the current CPU usage of the server?
What is the application’s threads executing and what type of requests are they?
Based on the criteria above, you should understand better when to use Web Gardens. Web Gardens, in the metabase, equals the MaxProcesses metabase property if you are not using the User Interface to configure this feature.
cscript adsutil.vbs set w3svc/apppools/defaultapppool/maxprocesses 4
I hope that I get some mileage out of having this blog and more importantly I hope it helps you understand this better…

You may want to look at "What is Web Garden?" from Deploying ASP.NET Websites on IIS 7.0 [codeproject.com] which says:

By default each Application Pool runs with a Single Worker Process (W3Wp.exe). We can assign multiple Worker Processes With a Single Application Pool. An Application Pool with multiple Worker process is called "Web Gardens". Many worker processes with the same Application Pool can sometimes provide better throughput performance and application response time. And each worker process should have their own Thread and Own Memory space.

Pang
  • 9,564
  • 146
  • 81
  • 122
Aaron
  • 2,341
  • 21
  • 27
  • so concretely if I increase the number of worker process and I use distributed cache it will increase performance of my website in a general way? – Christophe Debove Apr 08 '11 at 07:49
  • @Christophe Debouve: only in the case of "applications that are not CPU-bound but execute long running requests the ability to scale and not use up all threads available in the worker process." ... such as if you have a server which is designed to accept very large file uploads, for example. Otherwise, I wouldn't touch it. Are you facing a particular scalability issue at the moment? – Aaron Apr 08 '11 at 14:05
  • no I just wonder if I should apply that on my server but from what you said I don't need. Thanks you – Christophe Debove Apr 09 '11 at 11:53
  • 2
    @Aaron-SolutionEvangelist I have a website which generates RDLC reports (int .aspx pages) which take about 20 seconds to render in some cases. Will increasing the Max Worker Processes increase my apps performance? – Dawood Awan Apr 30 '15 at 21:34
0

WebGarden is faster than single worker process in case if application contains locks that prevent its parallelization. For example, GDI+ based image processing.

See this and this questions for more info.

Community
  • 1
  • 1
Marat Safin
  • 1,793
  • 20
  • 28