Web Debug

Fix broken web applications, from servers to clients.

Memory Based Recycling in IIS 6.0

Memory Based Recycling in IIS 6.0


The following points summarize good practices when using memory based recycling:

  • Configure IIS so it logs all recycle events in the System Log.
  • Use memory recycling only if you understand the application’s memory usage patterns.
  • Use memory based recycling as a temporary workaround until permanent fixes can be found.
  • Remember that memory based recycling may not work as expected when the application consumes very large amounts of memory in a very short period of time (less than a minute).
  • Closely monitor recycles and ensure that they are not too many (reducing the performance and/or availability of the application), or too few (allowing memory consumption of the application to create too much memory pressure on the server).
  • Use overlapped recycling when possible.

<!--more--> The documentation suggests setting the Virtual Memory threshold as high as 70% of the system’s memory, and the Used Memory as high as 60% of the system’s memory. However, for recycling purposes, and considering that during the recycle two processes must run concurrently, these settings could prove to be a bit aggressive. As an estimate, for a 32 bit server with 4 GB of RAM, the Virtual Memory should be set to some value between 1.2 GB and 1.5 GB, whereas the Private bytes should be around 0.8 GB to 1 GB. These numbers assume that the application is the only one in the system. Of course, these numbers are quick rules of thumb and do not apply to every case. Different applications have very different memory usage patterns.

Recycling on a Used-Memory Threshold (IIS 6.0)

Recycling on a Virtual-Memory Threshold (IIS 6.0)

Fork me on GitHub