Windows hot-add memory hurts Exchange Server performance

Learn how to prevent and resolve Microsoft Window's hot-add memory issues on Exchange Server 2003 with these performance troubleshooting options.

Microsoft Windows Server operating systems that support hot-add memory can unintentionally deplete Exchange Server 2003's kernel-paged pool memory and cause serious performance problems. Prevent and resolve hot-add memory issues on Exchange Server with these performance troubleshooting options.

Windows Server 2003 Datacenter and Enterprise Editions support hot-add memory, a hardware-level feature that lets an administrator add memory to an operating system without having to shut it down or take it offline.

Hot-add memory is useful, but it can cause quirky Exchange Server 2003 behavior. Problems actually arise from the way Windows Server 2003 manages the hot-add memory feature, but they most often manifest through Exchange Server. Exchange inexplicably fails to start or crashes for no apparent reason on Windows Server operating systems that have hot-add memory functionality.

More on Exchange Server performance management:
An administrator's guide to Exchange Server performance

Exchange Server memory management with /3GB, /USERVA and /PAE

An Exchange Server memory worst practice -- throttling RAM

Reference Center: Exchange Server performance management
Hot-add memory support, enabled by default, sets aside a certain amount of kernel-level memory for future memory allocation. Consequently, kernel memory may be set aside and never used, and the kernel-paged pool memory may be depleted faster than the operating system anticipates.

Microsoft Exchange and SQL Server administrators have to wrestle with this issue, since both Exchange Server and SQL Server aggressively use kernel-paged pool memory.

Windows 32-bit systems with 3 GB or more RAM installed experience a similar performance problem. On 32-bit systems with more than 3 GB RAM, the kernel-paged pool also get used up fairly quickly. The solution is to modify the size of the paged pool and a number of other kernel-level functions by using the /3GB and /USERVA boot switches.

Unfortunately, this solution doesn't work for Windows systems with hot-add memory support enabled. The paged-pool depletion problem gets magnified instead.

As discussed in the Microsoft Exchange Team blog post about Windows 2003 kernel memory issues and Exchange 2003, Windows attempts to reserve kernel space for the maximum amount of physical memory that can be added to the machine.

For example, if you have a Windows server that can support up to 64 GB of hot-add memory, but only 4 GB is actually installed, the operating system will set aside enough kernel-paged pool memory to support all 64 GB anyway! This means that a 64 GB allocation can use up as much as 30% of your kernel's paged pool.

Microsoft offers several possible solutions to performance problems caused by hot-add memory enabled systems:

  • Use the /MAXMEM=4096 boot switch to set the amount of physical memory to a hard ceiling of 4 GB (a 32-bit system will not use more than 4 GB effectively anyway).
  • Turn off hot-add memory support in the system's BIOS, or in the operating system itself. The latter can be done by editing the registry:
    1. Add a DWORD value named DynamicMemory to the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management.
    2. Set this value to 1 and reboot. (Note: If you're not using Windows Server 2003 Service Pack 1, this change will not work if the /3GB switch is present; Service Pack 1 fixes this problem.)

      This DWORD can also be used to govern the maximum amount of hot-add memory that can be present. For instance, if you have 4 GB installed and want to provision for the possibility that you'll add another 4 GB (but no more than that), you could set this value to 8 -- the total amount in gigabytes of hot-add memory needed to reserve kernel space. This would still allow you to hot-add memory in the future, but the total amount of kernel memory usage wouldn't be as much.

  • The simplest solution is to migrate to 64-bit Exchange 2007, which doesn't have the memory-allocation issues of 32-bit Exchange Server 2003. However, migrating to Exchange 2007 may not be practical or cost-effective for many organizations.

About the author: Serdar Yegulalp is editor of Windows Insight, a newsletter devoted to hints, tips, tricks, news and goodies for all flavors of Windows users.

Do you have comments on this tip? Let us know.

Please let others know how useful this tip was via the rating scale below. Do you know a helpful Exchange Server, Microsoft Outlook or SharePoint tip, timesaver or workaround? Email the editors to talk about writing for

Dig Deeper on Exchange Server setup and troubleshooting

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.