Search

Language:  
Search for:

Available article translations:

[How To] Troubleshooting paged and non-paged memory pool shortage (Event ID 2019 or 2020)

Article ID: 1675 
Created On: Jan 31, 2007
Last Review: Nov 11, 2012
Views:
Was this article helpful?
No Yes
APPLIES TO:
  • Parallels Virtuozzo Containers for Windows 4.6
  • Parallels Virtuozzo Containers for Windows 4.5
  • Parallels Virtuozzo Containers for Windows 4.0
  • Virtuozzo for Windows 3.5.1 SP1
  • Virtuozzo for Windows 3.5.1

Symptoms

The following errors appear in Event Viewer on the hardware node:

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 Non-Paged pool because the pool was empty.

 

Cause

The error means that the server has a shortage of non-paged (NP) memory pool. The NP pool on Windows 2003 x86 systems has a limit of 256 MB, which is used for critical kernel operations. In case the NP pool is overloaded, the system becomes slow and unresponsive and some software components cease to work normally (for example, IIS starts refusing connections).

The NP memory pool shortage can be caused by memory leaks in third-party software, malware, or generally overstraining the system with resource-intensive operations.

Resolution

The problem can be tracked in the following way:

1. Open Task Manager, go to the Performance tab and see the Non-paged pool usage in the Kernel Memory Usage area. Values higher than 220,000 KB are considered dangerous for the system stability (x86 platform only).

2. To find out the process that consumes the NP pool most, click the Processes tab, select View -> Select columns on the top menu, and select the PID, Session ID, and Non-paged Pool check boxes.

3. Sort the processes list by the NP Pool column and look for the process with the largest NP Pool value. Remember the PID value of this process.

4. Open the command-line prompt and use the vzquery command to find out which container runs the offending process.

vzquery p2v <PID_found_at_previous_step>

5. Then you can try to determine which services belong to the process:

vzctl exec CTID tasklist /svc

Example:

PID is 10872; the process is svchost.exe

vzquery p2v 10872
  Process ID: 10872
 Session ID: 7 (ROOT)

  VE ID: 119

  
vzctl exec 119 tasklist /svc
Image Name                     PID Services
========================= ========
============================================
System Idle Process              0 N/A
System                           4 N/A
smss.exe                       868 N/A
csrss.exe                     4388 N/A
winlogon.exe                  6032 N/A
services.exe                  2628 Eventlog, PlugPlay
lsass.exe                     3316 Netlogon, PolicyAgent, ProtectedStorage,                                SamSs
svchost.exe                  10104 DcomLaunch
svchost.exe                   8248 RpcSs
svchost.exe                   3112 Dhcp, Dnscache
svchost.exe                  10440 LmHosts
svchost.exe                  10872 AeLookupSvc, BITS, Browser, CryptSvc,
                                   EventSystem, helpsvc, lanmanserver,
                                   lanmanworkstation, Messenger, Nla,
                                   Schedule, seclogon, SENS, winmgmt, wuauserv
spoolsv.exe                  11680 Spooler
msdtc.exe                    12044 MSDTC

The command 'exec' is successfully finished


It is the svchost.exe that grabs the memory from the pool. One recommendation is to disable the BITS and Automatic updates (wuauserv) services:

vzctl exec CTID sc config wuauserv start= disabled
vzctl exec CTID sc config bits start= disabled
vzctl restart CTID


Note: Another possible reason could be that the process which consumes the non-paged pool memory is a kind of malware. In this case, it is necessary to remove the malware first and then check the container with antivirus software.

Additional Information

This troubleshooting is based on the articles and tools below:

Managing Container Memory Pools

Understanding Pool Consumption and Event ID: 2020 or 2019

http://msdn2.microsoft.com/en-us/library/ms792884.aspx

http://support.microsoft.com/kb/q177415/

Who's Using the Pool

The tool that can be used to evaluate memory usage is: pooltag.exe.



64d8d09669cff87d685a09b84f40c490 a06f7889a0f0293c5c75e7ee47fa3d96 909d99074e442b52ce54cc7b31cf065d 4542fc1e09dcc36ad9dbfd547b6b7b3c 1348db476c8a5844ffbef8d503db9c15 dd640fef2ac9c1ad1a973e29e85200a3 870fb674f341f7c79b2e59144973d37a 94ac96f9d7f760c2d56b7d3309290ca8 2897d76d56d2010f4e3a28f864d69223

Was this article helpful?
No Yes
 
 
 
 
 
 
For Home
For Hosters
For SaaS
For IaaS
 
Desktop Virtualization
- Parallels Desktop 8 for Mac
- Parallels Transporter
- Parallels Mobile
- Parallels Desktop Switch to Mac Edition
- Parallels Desktop for Mac Enterprise Edition
- Parallels Management-Mac for Microsoft SCCM
Server Virtualization
- Parallels Cloud Server
- Parallels Virtuozzo Containers
Automation
- Parallels Automation
- Parallels Automation for Cloud Infrastructure
- Parallels Business Automation Standard
- Parallels Virtual Automation
- Parallels Plesk Panel Suite
- Web Presence Builder
- Parallels Plesk Automation
- Parallels Small Business Panel
- Parallels Domain/SSL Reseller Program
- Value-added Services for Hosters
- Parallels Partner Storefront