views:

25

answers:

1

I have an application that is currently running on IIS 6.0 with one worker process (the default). I am trying to determine if creating a web garden will improve performance. I have read a bunch of articles that say that a web garden is not the right approach for everyone (since it duplicates resources, cache is not shared, etc). I could not find an article that had a clear rational for using a web garden (Microsoft's site provides three bullet points, but no specific examples can be found). My situation is as follows:

  1. We have can have up to 40 concurrent users at a given time.
  2. Our application performs a series of calcuations (on the magnitude of 1,000s of calculations) that can take up to 10 minutes to complete.
  3. We have multipe database calls some of which can take upwards to 30 seconds to complete.

Will creating a web garden improve performance, or should I simply increase the number of threads in the current worker process? When would be an example of when you should use a web garden? If a thread in the current worker process is performing calcuations (running .net code) and/or calling the database, can other threads run at the same time (I assume yes).

Thanks. Ryan

A: 

Personally, I have gone the route of using a web garden when my web application required frequent worker process recycles.

In this specific case we needed to recycle the worker process often because we were using CodeDOM to emit assemblies dynamically, which has a memory leak by definition as more assemblies are loaded.

Having a web garden helped avoid a delay in server response every time the worker process was recycled.

JeffN825