Thursday, September 30, 2010

Can you set a pagefile more than 4GB?

Introduction

Once upon a time, a Windows 2003 server in my company crashed. I had no idea why it crashed, so I called Microsoft PSS for assistance. The PSS engineer replied that he required a complete memory dump for a root cause analysis. Although, the server was set to perform a complete memory dump, it still did not have enough information for the PSS engineer.

Why? It is because the server has 8GB RAM, but the pagefile size is set for 4095MB, 4GB. It is not large enough to hold all the physical RAM. So I tried to alter the pagefile to make it large enough.

From Microsoft, http://support.microsoft.com/kb/254649, I found this:
If you select the Complete memory dump option, you must have a paging file on the boot volume that is sufficient to hold all the physical RAM plus 1 megabyte (MB).

OK, this means I need to set the pagefile to 8193MB (8 X 1024 + 1) for dumping a "complete memory dump". So I change my pagefile using the following steps.

Steps to set virtual memory in GUI

1. Right Click "My computer".
2. Select Properties.
3. Select Advanced.
4. Select "Performance Settings".
5. Select Advanced.
6. Select Change.
7. Select "C:".
8. Select "Custom Size".
9. Enter 8193 for "Initial size (MB)".
10. Enter 8193 for "Maximum size (MB)".
11. Click Set.

The following message appeared.

"Enter a maximum page file size that is greater than or equal to the initial page file size, and less than 4096".

Oops. Does this mean a server with more than 4095MB cannot perform a complete memory dump? It is common that we have servers with more than 4GB RAM. And we can't troubleshoot the crashed machine without complete memory dump?
How to set a pagefile more than 4GB?

I called the Microsoft PSS engineer again, and he sent me the following web link immediately..

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

The virtual memory settings are stored at the following registry value:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\MemoryManagement\Pagingfiles