Share via


Windows Troubleshooting: File page considerations

Calculating the minimum size of a page file is easy *if* you know the values of all of the variables. Unfortunately, no one knows or can predict the peak size of the System Commit Charge which makes page file sizing very difficult.

There are two major considerations:

  1. Large enough to handle the System Commit Charge Peak usage
  2. Large enough to handle a system crash dump

Both of these considerations are discussed in detail at: How to determine the appropriate page file size for 64-bit versions of Windows

The System Commit Limit is the sum of physical memory (RAM) and all of the page files combined. For example, if you have 16 GB of RAM and specified page file size of 16 GB, then the System Commit Limit of the system is 32 GB.

Formulas:

RAM + Pagefile(s) = System Commit Limit

System Commit Limit > System Commit Charge

The System Commit Limit must always be larger than the System Commit Charge. The System Commit Charge is the sum of all of the memory that the Windows memory manager has COMMITTED to - meaning the OS has guaranteed that it can accommodate the request even if it has to page it or other memory.

If the System Commit Charge is near the System Commit Limit and a memory request is asking for more memory that would take it over the system commit limit, then the memory request will be denied and often results in application or system crashes depending on the error handling of code making the request.

Even though the formula to calculate the System Commit Limit is easy, the problem is that no one can predict what the peak system commit charge will be - even on identical PCs load balancing similar requests. One of them may take a different code path that requires more memory.

In regards to page file sizing to accommodate crash dumps. That is relatively easy and covered in my article mentioned above. In short, the default settings in Windows and Windows Server which is either Active or Automatic are great and cover 90% of all of the cases I can think of. They are well aware of disk space usage of the page file and therefore make the initial size of the page file to be roughly 10% of RAM. This is a *lot* smaller than it used to be on older operating systems that often made it 1 x RAM. In addition, the Automatic setting will grow the page file as necessary to accommodate the current crash dump setting and the growth of the system commit charge. 

In short, it's highly recommend using the default, Automatic page file setting. Do not change the page file setting unless you have a very strong grasp of Windows memory management.