We are trying to maximize availability on our content delivery virtual machines. By default, IIS is set to recycle app pools every 29 hours.
This value can be set to
0 such that IIS never recycles the app pool automatically. This seems like an easy win and it's specifically recommended in the book Sitecore Cookbook for Developers, but are there any reasons we might not want to do this? Are there any reasons why regularly scheduled app pool recycles might be desirable for a Sitecore site?
For example, while this is not Sitecore specific, this Microsoft blog post says:
You may ask whether a fixed recycle is even needed. A daily recycle is just a band-aid to freshen IIS in case there is a slight memory leak or anything else that slowly creeps into the worker process. In theory you don’t need a daily recycle unless you have a known problem. I used to recommend that you turn it off completely if you don’t need it. However, I’m leaning more today towards setting it to recycle once per day at an off-peak time as a proactive measure.