Set the paged address pool and kernel stack size

In Windows 2000, a fair amount of the memory reserved specifically for the kernel is devoted to two things: the paged address pool and the kernel stack. The paged address pool is memory used by kernel-mode components, such as Ring 0 drivers. The kernel stack is memory reserved for use by each thread in the kernel for system calls. Both of these memory allocations use the same portion of 2-GB space reserved for the kernel, but the balance of the memory allocation between the two of them is "soft-wired" into Windows 2000.

On some servers with exceptionally high loads, or that have large numbers of users logging in via Terminal Services, you may notice unexpected errors, such as the computer refusing to accept new logins or the failure of kernel-level drivers. This is usually a sign of the paged address pool or kernel stack running out of memory. STOP 0x0000003F or STOP 0x000000D8 errors are another symptom of this problem.

The kernel stack area is set to be as large as possible when Terminal Services is in use, so if this problem is appearing on a system that uses Terminal Services a great deal, the paged address pool is probably running out of room. To fix this, you need to adjust the memory partition between the paged address pool and the kernel stack.

To change the partition, edit the following Registry key:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management\SystemPages

This value

Requires Free Membership to View

is generally set by default for the maximum number of users, but if it is less than 7,000 (decimal), set it to between 7,000 and 50,000 depending on the number of users you have. You can find a detailed way to compute what threshold to use in Knowledge Base article Q247904, using a remote debugging session to obtain live statistics. Generally, though, the SystemPages setting should be 40,000 or greater where possible.

If your computer does not already have the maximum amount of physical RAM installed, you may also want to look into adding RAM as another preventive measure, especially if the machine was in need of a RAM upgrade to begin with.

Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter.

This was first published in June 2002

There are Comments. Add yours.

TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.