Symptoms
The server supports Hot-Swap memory technology, that allows dynamic addition of physical memory. Leak of kernel mode memory appears and leads to "insufficient resources" errors.For example:
The target 16 CPU system with 8Gb of physical memory is unable to run more than 30 VEs. After starting 30-th one the user becomes unable to start any more process because of "insufficient resources" error.
Cause
During the system initialization, OS allocates PFN Database. If the Hot-Swap technology is supported, the allocatable size of the PFN Database can be determined two ways:· by the value of "DynamicMemory" variable in registry
· by the maximum Hot-Swap memory address supported by HAL
The "DinamicMemory" variable is not present in registry by default. So, the OS always uses maximum supported amount.
For example:
There is 8Gb of physical memory on the target system. The PFN Database size required for this value is: 8Gb/PAGE_SIZE*PFN_SIZE = 56Mb. But OS always allocates PFNs for maximum supported Hot-Swap memory. If this amount equal to 64Gb (maximum for ia32 PAE) the allocated value is: 64Gb/PAGE_SIZE*PFN_SIZE = 448Mb.
This results in leak of kernel mode memory, and leads to "insufficient resources" errors.
For example:
The target 16 CPU system with 8Gb of physical memory is unable to run more than 30 VEs. After starting 30-th one the user becomes unable to start any more process because of "insufficient resources" error.
Resolution
To resolve this situation with Hot-Swap memory, we should add into the system registry:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] "DynamicMemory" value, with type of DWORD, that specifies the amount of gigabytes of physical memory supported by system PFN Database.
Keywords: insufficient resources