EventID 2020 : Pool Consumption Exhausted

Help...Houston we have a problem our "Paged Pool" or "Non Pages Pool" is exhausted what can I do to diagnose this issue as my server is on its last legs...
The Issue
Event ID 2020

Event Type: Error

Event Source: Srv

Event Category: None

Event ID: 2020

Description:

The server was unable to allocate from the system paged pool because the pool was empty.

Event ID 2019

Event Type: Error

Event Source: Srv

Event Category: None

Event ID: 2019

Description:

The server was unable to allocate from the system NonPaged pool because the pool was empty.

What is the Pool

The Pool is not the amount of RAM on the system, it is however a segment of the virtual memory or address space that Windows reserves on boot.  
These pools are finite considering address space itself is finite.  So, because 32bit(x86) machines can address 2^32==4Gigs, Windows uses (by default) 2GB for applications and 2GB for kernel.  
Of the 2GB for kernel there are other things we must fit in our 2GB such as Page Table Entries (PTEs) and as such the maximum amount of Paged Pool for 32bit(x86) of ~460MB puts this in perspective in terms of our realistic limits per processor architecture.  As this implies, 64bit machines have less of a problem here due to their larger address space but there are still limits and thus no free lunch.
 

Resolution Action Plan
1. View Handle Count
To view the Handle of all the processes that are running in Windows bring up the Task Manager by pressing CTRL+ALT+DEL and choosing Task Manager....next click on the Processes Tab...

Now select View and Choose Columns....

When you click OK you will notice that you now have a Handle count column click on the word "Handle" so you order your processes by Handle Count as shown below:

You can see that at the top I have iTunes with 1,500 handles....this is OK you are looking for anything over 5,000 as a ball part figure....this is not bad but lots of these will addup to pool issues...
So if you have an application with say 75,000 handles then you are in for a bumpy ride with server pools...
If this is an application that runs as part of the desktop then stop and quit the application....if this is a service then ensure you stop this service to freeup the kernel memory.
2. PoolTag Diagnostics
NOTE : PoolTagging is only supported in Windows 2003 and above, you cannot use this section for Windows 2000 or NT4
To user Pool Tagging you will need to enable Pool Tagging with the gflags command....to complete this click Start>Run and enter "gflags" you will be presented with this dialogue box:

Click the Enable Pool Tagging box and click OK....you will need to restart your computer for this to take effect...once you have you can use this to see potential leaks....the command is "poolmon" from a command prompt
If you get the error below then you have forgotton to reboot your server....


Query pooltags failed (returned: c0000002)

Did you remember to enable pool tagging with gflags.exe and reboot?

If you want to know how to use PoolMon then use the link here
3. Driver Verifier
Yes, this is more the advanced tool for this error....you can start the process by typing "verifier" in at the command prompt this will display this window....
Firstly see what verification level you have at the moment....click next and wait for the report....
Previous Post Next Post

☕️ Buy me a coffee ?

If any of these articles have helped you out consider buying me a coffee, completely optional, but would be appreciated!

نموذج الاتصال