Symptoms
- Available memory is almost exhausted.
- The system file cache consumes most of the physical RAM.
- There is a continuous and high volume of cached read requests to the hard disk.
Cause
This behavior also applies to the working set of the system file cache. If there is a continuous and high volume of cached read requests from any process or from any driver, the working set size of the system file cache will grow to meet this demand. The system file cache consumes the physical RAM. Therefore, sufficient amounts of physical RAM are not available for other processes.
On 32-bit versions of Microsoft Windows operating systems earlier than Windows Vista, the working sets of the system file cache have a theoretical memory limit of less than 1 gigabyte (GB). The limitation of the virtual address range prevents the working sets of the system file cache from exhausting the physical RAM.
On 32-bit versions of Windows Vista operating systems, kernel resources are allocated dynamically. The working set of the system file cache increases to consume the virtual address range of the kernel mode at the expense of other kernel resources. The limitation of this memory range is less than 2 GB. If the computer has more than 2 GB of physical RAM, the cache cannot exhaust all the physical RAM. However, the cache can exhaust the virtual address space in the kernel. This can cause allocation failures for other kernel components.
On 64-bit versions of Windows operating systems, the size of the virtual address range is typically larger than the physical RAM. In this situation, the working set for the system file cache can increase to consume most of the physical RAM.
Resolution
How to determine whether your system is affected
To determine whether your system is affected by this issue, install the SysInternals RamMap tool. You can obtain the tool from the following Windows Sysinternals website:When you run the tool, select the Use Counts option. This displays several columns that show the current pattern of memory usage. Click the Active column to sort by the number of bytes used, and note the top usage directly under the total.
If the top use count is “Metafile,” and if a large part of available memory is being used, you are experiencing the System File Cache issue that is described in the "Symptoms" section. You can verify this by using Performance Monitor to monitor the Memory\System Cache Resident Bytes counter and see the cache grow continuously over time.
Figure 1. Example RamMap output in which the computer is experiencing the issue.

Figure 2. Example RamMap output in which the computer is not experiencing the issue.

If the Memory\System Cache Resident Bytes counter in Performance Monitor shows an upward trend over time, the computer is experiencing the issue, as shown in Figure 3.
Figure 3. Example Performance Monitor output in which the computer experiences the issue over time.

Restart requirements
You do not have to restart the computer when you install, uninstall, or use this service.- Verify that the customer's RamMap output, perfmon, or poolmon data confirms that the System File Cache is consuming most of the physical RAM, as described earlier.
- To obtain the Windows Dynamic Cache Service, download it here.
- Some Dynamic Cache Registry settings are as follows:
File servers, you might want to try 1GB.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes"=dword:00000400
"MinSystemCacheMBytes"=dword:00000064
"SampleIntervalSecs"=dword:0000003c
"CacheUpdateThresholdMBytes"=dword:00000064
Exchange 2007, you might want to try 500 MB:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes"=dword:000001F4
"MinSystemCacheMBytes"=dword:00000064
"SampleIntervalSecs"=dword:0000003c
"CacheUpdateThresholdMBytes"=dword:00000064
SQL 2005 and higher, in the past when working with SQL EE’s, have used 2GB:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes"=dword:000007D0
"MinSystemCacheMBytes"=dword:00000064
"SampleIntervalSecs"=dword:0000003c
"CacheUpdateThresholdMBytes"=dword:00000064
More Information
The Microsoft Windows Dynamic Cache Service is a sample service that demonstrates one strategy to use these APIs to minimize the effects of this issue.
Installing and using the Microsoft Dynamic Cache Service does not cause the exclusion of support for Microsoft Windows. This service and its source code are provided as an example of how to use the Microsoft supported APIs to reduce the growth of the file system cache.
You can obtain the service and source code from the following Microsoft website:
Additional Resources
Read Chapters 9 (Memory Management) and 10 (Cache Manager) of Windows Internals, the 5th Edition.
MEMORY MANAGEMENT (LARGE SYSTEM CACHE ISSUES) Blog Post
Slow Large File Copy Issues Blog Post
Memory Limits for Windows Releases
976618 You experience performance issues in applications and services when the system file cache consumes most of the physical RAM
918483 How to reduce paging of buffer pool memory in the 64-bit version of SQL Server
895932 Things to consider before you enable System cache mode in Windows XP
232271 How to Optimize Windows NT Server Using the Registry
837331 About Cache Manager in Windows Server 2003
http://technet2.microsoft.com/windowsserver/en/library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspx
LargeSystemCache TechNet Topic
RamMap Blog Post