Work around for suspected memory leak in DLLHOST.exe

Document ID: 10289

Synopsis

This document details a work around for a known issue in MailSite Express that is suspected to cause a memory leak in DLLHOST. The work around uses the new "Recycle Worker Processes" featur

More Information

Work around for suspected memory leak in DLLHOST.exe This document details a work around for a known issue in MailSite Express that is suspected to cause a memory leak in DLLHOST. The work around uses the new "Recycle Worker Processes" feature in Windows Server 2003. Initial reports suggest that this process is transparent to end users. This Work Around requires Windows 2003 and IIS 6. All known issues with DLLHOST have been resolved in MailSite 7 and later. If you are experiencing this issue, please upgrade. All known issues with DLLHOST have been resolved in MailSite 7 and later. The following information is intended as a guideline. Rockliffe recommends that customers undertake their own research and testing before implementing any of the recommendations below on a live server. Requirements: Microsoft Windows Server 2003, IIS 6. This issue manifests itself in one or more ways: - DLLHOST grows in memory until IIS becomes unstable/unresponsive - DLLHOST grows in CPU utilization until IIS and/or other services become unstable/unresponsive - Express randomly stops accepting incoming connections until IIS is stopped and restarted Description of work around: 1. Open "Internet Information Services (IIS) Manager", expand "The Server Name", expand "Application Pool". 2. Right click on the "DefaultAppPool", select "Properties". 3. On the "Recycling" tab check "Recycle Worker Processes (in minutes)" and set it a value that meets your requirements. Some users have found that a value of "240" is appropriate for a server with a large number of regular webmail users (over 10,000) - this will recycle IIS every four hours. 4. Leave "Recycle worker process (number of requests)" checked. 5. Un-check "Recycle worker processes at the following times". 6. In the "Memory recycling" section check the box for "Maximum virtual memory (in megabytes)" and "Maximum used memory (in megabytes)", set both to a level that is a) high enough to minimize the recycling requirement and b) low enough to catch your observed memory growth "ceilings", and c) low enough to take into account the total available memory on your server (for a 2GB server for example, you might want to set this figure to "500"). 7. Click on the "Performance" tab, in the "Idle timeout" section check "Shutdown worker processes after being idle for (time in minutes)", set this to a level that is appropriate for the level of traffic on your server. This setting helps conserve system resources if the system has been idle for longer than XX minutes. 8. In the "Web Garden" section, set "Maximum number of worker processes" to "1". Leave all other settings on that tab un-checked. NOTE: If you are currently utilizing the "Web Garden" option within IIS6 it's recommend to create a separate "Web Garden" just for Express which should be set to (1). 9. In the "Health" tab, check "Enable pinging", type in a value of 10 for "Ping worker process every frequency in seconds". If a ping doesn't respond within this timeframe it is terminated and a new one is started. Do not tick "Enable rapid-fail protection" as we have had reports of this causing problems with pages not being displayed and IIS errors being returned. 10. In the "Health" tab, in the "Start-up time limit" and "Shutdown time limit" sections set these values to "10" seconds for "Worker process must start-up within (time in seconds)" and "Worker process must shutdown within (time in seconds)".