Servers that run under extremely heavy loads -- meaning they have a lot of services running and a lot of open file handles -- may start logging a great many errors of Event ID 2020. The error information reads:
"Event ID 2020 - The server was unable to allocate from the system paged pool because the pool was empty."
This happens if Windows 2000's memory manager can't de-allocate paged pool memory fast enough to keep up with demand. Paged pool memory is system or kernel code that can be swapped out to disk when there's little physical RAM left. De-allocating paged pool memory is the actual swapping process. Normally this swapping starts happening when 80% of the total paged pool is used by system operations, but it may need to happen a lot sooner if the server starts experiencing heavy loads.
To do this, you'll need to edit the Registry. (Make sure you've backed it up, and can restore it in the event you do something untoward.) Run REGEDT32 and open the key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management
Add a REG_DWORD value named PoolUsageMaximum (assuming there isn't one already), and set the value of the key to 40 (decimal). This indicates that the memory manager should begin trimming down allocated paged pool memory when 40% of the total paged pool is in use.
Set the PagedPoolSize REG_DWORD key to 0xFFFFFFFF (hex), which allows the largest possible paged pool permitted. Close down REGEDT32 and reboot.
Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter.