We help IT Professionals succeed at work.

Windows 2003 File Server Memory Leak

ksbunger1 asked
Having a problem with our Win2k3 server in which users are not able to access file shares.  Seems to be happening about once a day.  The error is "Not enough server storage is available to process this command".  When problem occurs, unable to open management console on server w/ "Insufficient system resource" errors.  The system log is reporting Srv Errors (2020 - "The Server was unable to allocate from the system paged pool because the pool was empty.")  

Any help is greatly appreciated.

Watch Question

Sounds like a problem with virtual memory. Either some program is leaking memory, or you are running too many memory-hog programs on this one server.  If your virtual memory is set to the standard Windows server configuration, then the first thing I would do is to set it to a manual configuration and allocate at least 1.5 times the physical RAM to the page file, up to a max of about 4-5GB.
This has nothing to do with the page file. Page file is physical memory. Please don't confuse page file with virtual memory. The server is logging 2020 so there is a paged pool memory depletion. On a 32 bit OS as the virtual address space is limited to 4 GB, the kernel mode resources are very limited too. the paged pool memory resides in the kernel part of this virtual address space. On a 32 bit OS the paged pool might vary from around 360 MB to 550 MB. Now, the this paged pool depletion might happen for two reasons - 1. there is a memory leak in the paged pool, which might be caused by any kernel mode drivers OR the system needs more paged pool and its booting with less amount of paged pool. Please note that copying files will use paged pool. Please do the following regustry change, if its not a LEAK the problem shoudl get fixed, if its happening due to a page pool leak, we need  a poolmon log to find the tag which is leaking.

Go to the following registry location and export the key to take a backup, save it as a REG file.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
On the right pane set the PagedPoolSize value to FFFFFFFF
Create a new DWORD entry in the same location and name it PoolUsageMaximum and set it to 40 (decimal)
Set the LargeSystemCache value to 0
Make sure that SystemPages value is set to 0
Make sure you do not have /3GB switch in the C:\Boot.ini file

The userprofiles are loaded in the registry and the registry in turn gets loaded in the paged pool. at times the user profiles might not get unloaded completely when a user logs off, this might not free up the paged pool so that the system can use it.
Please install the UPHClean service to make sure that the user profiles are unloaded completely at logoff, this is a highly recommended service and has been added to the OS vista onwards
UPHCLEAN dowload:
It does not require a reboot

The /3GB switch restricts the system address space to 1GB instead of the usual 2GB. This will reduce the size of the paged pool. The iswitch is rarely useful on a file server.


Graded LMiller7 higher since he answered first.  Only used his part of the solution in madhurjya123's post, though madhurjya123 did a great job of explaining the problem.