Windows Server 2003 Datacenter and Enterprise Editions support
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.
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:
- Add a DWORD value named DynamicMemory to the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management.
- 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.
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 SearchExchange.com.
This was first published in September 2007