Question : In IIS6, how does the size of the web garden manifest itself during recycling?

Hello Experts!

In IIS6, how does the maximum number of w3wp's defined in the web garden of the application pool affect the number of concurrent worker processes during recycling? In other words, if the number is limited to 1 will there be two concurrent w3wp processes during the recycle period (one being retired and one kicking in)? If the web garden is set to 5 can it reach up to 10 concurrent w3wp's during recycle?

Thanks!

Answer : In IIS6, how does the size of the web garden manifest itself during recycling?

Depends, but by default, yes.

There is a setting called DisallowOverlappingRotation that will cause the new W3WP.exe to not start until the first one actually terminates if set to 1, but by default the new W3WP.exe will be started before the first one terminates.

The overlap should be very short - on the order of a second or two.  If the overlap is longer than this you likely have a hung thread in the W3WP process.

----
Now, for official documentation: (http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/3ee19598-ec90-4570-a4a5-d93a24400b99.mspx)

How Worker Process Recycling Works in IIS 6.0 (IIS 6.0)

Depending on how an application pool is configured for recycling, the World Wide Web Publishing Service (WWW service) in IIS 6.0 can recycle the assigned worker process in two ways:

1.
 By default, the WWW service establishes an overlapped recycle, in which the worker process that is to be terminated is kept running until after a new worker process is started.
 
2.
 Alternatively, the WWW service can terminate a worker process and then start a new worker process if the workload justifies this action.
 

  Note

When the WWW service recycles a worker process, it does not disconnect the existing TCP/IP connection. The HTTP protocol stack (HTTP.sys) establishes and maintains TCP/IP connections.

In an overlapped recycle scenario, the process that is targeted for a recycle continues to process requests while the WWW service simultaneously creates a replacement worker process. The new worker process is started before the old worker process stops, and requests are then directed to the new process. This design prevents service interruptions, because the old process remains in communication with HTTP.sys to handle requests until it shuts down. Because the shutdown timeout value of an overlapped shutdown or startup is configurable, the worker process can be terminated while it is still serving requests, if it does not finish draining requests within the time limit.

When you configure an application pool to recycle worker processes based on elapsed time, all the worker processes are recycled during the elapsed time set, but they are not recycled all at once. Application recycling is spread over the time set to reduce interruptions of service to client requests.

Similarly, when you configure an application pool to recycle applications based on the number of requests processed, recycling takes place at intervals to spread the overhead that is associated with the worker-process recycling.


Dave Dietz
Random Solutions  
 
programming4us programming4us