One question that I get frequently about Vista, especially from power users, tackles the size of its paging file. Remember, the paging file (which resides in a file named pagefile.sys on Vista machines, often on the system drive, sometimes on one or more other physical drives present on a Vista PC) provides extra “scratch space” for the operating system to use, especially when moving applications in and out of physical memory. The combination of the page file and physical memory creates an aggregate work space so that Vista can manage multiple applications, services, and so forth simultaneously, without having to keep all of them in memory all of the time.
When Vista creates a paging file, it normally creates one that’s twice the size of physical memory, sometimes more than that (actual values depend on free space available on the target drive(s) at the time the page file is situated). Microsoft recommends no less than the amount of physical memory plus 300 MB for the minimum value, and sets the maximum at three times the amount of RAM installed in a PC. Conventional wisdom is that the defaults are fine, particularly on drives that have sufficient free space to allocate three times RAM to the paging file as an ultimate high-water mark.
Most of the power user questions add some interesting wrinkles to this discussion. Thus, for example, consider that 32-bit Windows can address only 4 GB of RAM period. A common form for this query is something like: “Why is a paging file necessary when the amount of RAM matches what Windows can handle anyway?” The answer is interesting and a bit counterintuitive:
- on 32-bit systems video memory, BIOS memory space, DMA, IRQ, and other system memory maps and hardware addressing usually consume memory from the top down. That’s why on 32-bit systems with 4 GB installed, Task Manager usually reports only 3xxx MB of RAM (3317 on my Dell D620 notebook and 3581 on my Intel desktop, for example) rather than 4096.
- some Windows applications require access to a paging file so they can operate properly, and will crash if you try to run them with the paging file disabled.
- Windows itself prefers to have access to a paging file, if only to help it manage the process of loading and unloading applications scheduled for execution (on the way in) or for termination or swap-out (on the way out).
- You can’t capture memory dumps from stop or blue screen errors without a paging file (even minidumps require a 64 KB paging file, and the Vista minimum size is 16 MB in any case).
This discussion kicks up a notch when power users run 64-bit Vista with more than 4 GB of RAM, but the issues remain more or less the same. In general, it’s not worth messing with the defaults unless there’s some compelling reason to do so (limited space on a notebook SSD, for one example, or demonstrable performance slow-downs attributable to paging, for another).
When downsizing a paging file, here are some points to ponder:
- experimentation shows that at least 512 MB of paging file is the absolute minimum that delivers reasonably stable operation, with values of 1 – 2 GB sometimes offering even better stability.
- if you want to capture a complete memory dump, the paging file must be at least as large as the amount of physical memory installed on the machine (this file usually appears in a filed named MEMORY.DMP in the %SystemRoot% directory, which is C:\Windows on most Vista machines).
- be sure to check all the applications you’ll want to run on that machine, and keep an eye out for insufficient virtual memory messages. These will appear until you re-size the paging file to a point where all applications find sufficient virtual memory available for their use.
This kind of testing, requires a lot of patience, time, and effort which is why only power users (and mildly obsessive ones at that) are usually willing to go through this exercise. For most users, especially those uninterested in tweaking and tuning their Vista notebook or desktop PCs, the system-defined defaults should work just fine.