原文出處:http://support.microsoft.com/kb/976618算法
原文標題:當系統文件緩存耗用大量物理 RAM,您會遇到應用程序和服務的性能問題(You experience performance issues in applications and services when the system file cache consumes most of the physical RAM)緩存
因爲微軟的機器翻譯實在太爛,因此人工翻譯了一下。app
現象 ide
您會在各類版本的 Windows XP、 Windows vista、 Windows Server 2003,Windows Server 2008 和 Windows Server 2008 R2 中遇到應用程序中和服務的性能問題。函數
此外,您還會發現下列現象:工具
Windows 系統使用基於需求的的內存管理算法。若是任何進程請求並使用大量的內存,該進程的工做集(物理內存中可用內存頁面數)就會增大。若是這些請求持續且未受抑制,那麼進程的工做集(working set)將增加至佔用全部的物理內存。在這種狀況下,其餘進程的工做集(working set)將調出到硬盤上。這種現象將下降應用程序和服務的性能,由於內存頁老是在不斷的寫入磁盤又從磁盤中讀出。
這種現象也適用於系統文件緩存的工做集。若是有任何進程或驅動程序持續且大量的對磁盤卷的進行緩存讀取的請求,系統文件緩存的工做集將增加以知足這一需求。系統文件緩存消耗物理內存從而致使其餘進程沒有足夠的物理內存量。
早於Windows Vista的32位Windows系統中,系統文件緩存的工做集有一個小於 1GB的理論上限。
32位的Windows Vista系統動態分配核心資源。
64 位的Windows 操做系統中虛擬地址範圍的大小大於一般的物理內存。性能
解決此問題須要使用GetSystemFileCacheSize API 函數和SetSystemFileCacheSize API 函數來設置系統文件緩存工做集的最大值或最小大小值。這些函數是惟一能夠限制系統文件緩存對物理內存消耗的方法。
Microsoft Windows Dynamic Cache Service 用來演示一種使用這些 Api 來儘可能減小此問題影響的策略的示例服務。
安裝和使用 Microsoft Windows Dynamic Cache Service不會致使微軟拒絕支持您的系統。提供此服務和它的源代碼做爲示例,說明如何使用 這些Api 來減小文件系統緩存的增加。
能夠經過下面的連接下載服務和源碼:
http://www.microsoft.com/downloads/details.aspx?FamilyID=e24ade0a-5efe-43c8-b9c3-5d0ecb2f39af&displaylang=enspa
在Windows 7 和 Windows Server 2008 R2 操做系統的內存管理算法已更新,能夠解決不少系統文件緩存在之前版本的 Windows 中發現的問題。只有某些特殊的狀況,您才須要在計算機正在運行 Windows 7 或 Windows Server 2008 R2 上實現此服務時。操作系統
如何肯定您的系統受此問題影響
經過下列網址下載的SysInternals RamMap 工具,並將其安裝在您的系統:
http://technet.microsoft.com/en-us/sysinternals/ff700229翻譯
安裝、卸載該工具均無需重啓。運行該工具,選擇"Use Counts"視圖,該視圖將顯示多個數據列以闡釋當前的內存使用狀況。單擊"Active"列根據字節數進行排序,並關注Total列中使用率最高的項。
若是正在使用大量內存的是"Metafile",說明您遇到了上述系統文件高速緩存問題。同時咱們還可使用性能監視器監控Memory\System Cache Resident Bytes counter 觀察緩存持續增加的現象來確認正在遭受此問題。
RamMap 的下列輸出說明計算機出現此問題:
RamMap 的下列輸出說明計算機未出現此問題:
使用性能監視器監控Memory\System Cache Resident Bytes counter示例: