Understanding Memory and the File System Cache

Windows 2000 allocates a portion of the virtual memory in your system to the file system cache . The file system cache is a subset of the memory system that retains recently used information for quick access. The size of the cache depends on the amount of physical memory installed and the memory required for applications. The operating system dynamically adjusts the size of the cache as needed, sharing memory optimally between process working sets and the system cache.

On computers running Windows 2000 Server, the value set for the LargeSystemCache registry entry in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management controls the size of the cache. You should set the value of the LargeSystemCache entry using the Windows 2000 Server user interface, rather than by editing the registry. Use the Server Optimization tab in the File and Printer Sharing for Microsoft Networks Properties dialog box to control memory buffer allocation for network connections and the size of the file system cache working set. Figure 6.2 illustrates the user interface for configuring these settings. Notice that these settings are not available on Windows 2000 Professional.


Figure 6.2 File and Printer Sharing for Microsoft Networks Properties Dialog Box

To view or change Server Optimization settings

  1. From the Start menu, point to Settings , and then click Control Panel .

  2. Double-click Network and Dial-up Connections .

  3. Double-click Local Area Connection , and then click the Properties button.

  4. In the Local Area Connection Properties dialog box, double-click File and Printer Sharing for Microsoft Networks .

  5. Under Optimization , if you are running Windows 2000 Server, the Maximize Data Throughput for File Sharing option is selected by default.

  6. Click OK .

The values for the LargeSystemCache entry are shown in Table 6.1, along with their corresponding options under File and Printer Sharing for Microsoft Networks Properties .

Table 6.1 Settings that Manage Cache Size in the Registry and the User Interface

Registry value

User interface option




Maximize data throughput for network applications

Optimizes systems for distributed applications that typically do their own memory caching (such as SQL Server, which sets this option by default). This setting is useful for computers providing application services because it favors the working sets of processes over the working set of the file system cache.

This setting is useful for larger server applications and database servers such as SQL Server that need to maximize process working sets over the file system cache working set.


Maximize data throughput for file sharing

Optimizes the system for file and printer sharing resources. This is the default set by Windows 2000 Server Setup. If you have at least 128 MB of RAM, this value results in a very high maximum size for the cache working set. The Maximize Data Throughput for File Sharing option is useful for computers that typically run the Server service for file sharing.

On Windows 2000 the file system cache working set can be increased by 464 MB of additional virtual address space (up to 960 MB) if the system has less than 16 GB of RAM, is not configured to start with the /3GB Boot.ini switch, and the PagedPoolSize entry is set to a value other than 0xFFFFFFFF (or 0 on systems with more than 1 GB of RAM), such as 192000000, the system is not running Terminal Services, and the SystemPages entry is not set to 0xFFFFFFFF. For more information about how various memory-management registry entries interact, see "Optimizing Your Memory Configuration" later in this chapter.

To adjust the way memory is allocated on your system, you might want to tune the settings of the preceding registry entries under the Memory Management subkey. The following section describes how to do this.