Applies ToMicrosoft Windows XP Professional x64 Edition Windows Vista Home Basic Windows Vista Home Premium Windows Vista Business Windows Vista Enterprise Windows Vista Ultimate Windows Vista Home Basic 64-bit Edition Windows Vista Home Premium 64-bit Edition Windows Vista Enterprise 64-bit Edition Windows Vista Ultimate 64-bit Edition Windows Server 2008 Datacenter without Hyper-V Windows Server 2008 Enterprise without Hyper-V Windows Server 2008 Standard without Hyper-V Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 for Itanium-Based Systems Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Standard

徵狀

在各種版本的 Windows XP、Windows Vista、Windows Server 2003、Windows Server 2008 及 Windows Server 2008 R2 中,您都會遇到應用程式和服務的效能問題。 此外,您會注意到下列問題:

  • 可用的記憶體幾乎耗盡了。

  • 系統檔案快取會佔用大部分的物理 RAM。

  • 硬碟有持續且大量的快取讀取要求。

原因

Microsoft Windows 作業系統中的記憶體管理會使用以要求為基礎的演算法。 如果有任何處理程式要求並使用大量的記憶體,則工作集的大小 (處理的物理) RAM 中的記憶體頁數都會增加。 如果這些要求是連續且未核取,則處理常式的工作集將會增長,以佔用所有的物理 RAM。 在這種情況下,所有其他處理常式的工作集都會分頁到硬碟上。 此行為會降低應用程式和服務的效能,因為記憶體頁面會持續寫入硬碟並從硬碟讀取。此行為也適用于系統檔案快取的工作集。 如果從任何進程或任何驅動程式都有連續且大量的快取讀取要求,系統檔案快取的工作集大小會隨著這個需求而增長。 系統檔案快取會佔用物理 RAM。 因此,其他進程不提供足夠數量的物理 RAM。在 Windows Vista 之前的32位版本的 Microsoft Windows 作業系統上,系統檔案快取的工作集的理論記憶體限制為小於 1 gb (GB) 。 虛擬位址範圍的限制會防止系統檔案快取的工作集 exhausting 物理 RAM。在32位版本的 Windows Vista 作業系統上,會動態地指派內核資源。 系統檔案快取的工作集會隨著其他核心資源的支出而增加,佔用核心模式的虛擬位址範圍。 此記憶體範圍的限制小於 2 GB。 如果電腦的物理 RAM 超過 2 GB,則快取無法耗盡所有物理 RAM。 不過,快取可能會耗盡內核中的虛擬位址空間。 這可能會導致其他內核元件的分配失敗。在64位版本的 Windows 作業系統上,虛擬位址範圍的大小通常大於物理 RAM。 在這種情況下,系統檔案快取的工作集可能會增加,佔用大部分的物理 RAM。

解決方案

Windows 7 和 Windows Server 2008 R2 作業系統中的記憶體管理演算法已更新,以解決在舊版 Windows 中發現的許多檔案快取問題。 在執行 Windows 7 或 Windows Server 2008 R2 的電腦上,只需要執行這項服務,才會有一些特殊的情況。

如何判斷您的系統是否受到影響

若要判斷您的系統是否受此問題影響,請安裝 SysInternals RamMap 工具。 您可以從下列 Windows Sysinternals 網站取得該工具:

HTTP://technet.microsoft.com/en-us/sysinternals/ff700229 當您執行此工具時,請選取 [使用計數] 選項。 這會顯示數個數據行,顯示目前的記憶體使用模式。 按一下作用中的資料 域,依使用的位元組數排序,並記下總計底下的最大使用量。如果最上面的使用計數是 "中繼檔",且有大量可用記憶體,就表示您遇到「症狀」一節中所述的系統檔快取問題。 您可以使用效能監視器來進行驗證,以監視 Memory\System 快取駐留位元組計數器,並在一段時間內看到快取增加。圖1。 此為電腦出現問題的 RamMap 輸出範例。 替代文字 圖2。 此為電腦未遇到問題的 RamMap 輸出範例。 替代文字 如果 [效能監視器] 中的 Memory\System [駐留位元組] 計數器顯示一段時間的上升趨勢,表示電腦出現問題,如圖3所示。圖3。 在螢幕上遇到問題時,電腦的效能監視器輸出範例。 替代文字

重新開機需求

當您安裝、卸載或使用此服務時,您不需要重新開機電腦。

如果您正在閱讀本文,因為您使用的客戶認為他們受此問題影響,請依照下列步驟來協助您解決問題。

  1. 確認客戶的 RamMap 輸出、perfmon 或 poolmon 資料確認系統檔案快取了大部分的物理 RAM (如前文所述)。

  2. 若要取得 Windows 動態快取服務,請 在這裡下載。

  3. 某些動態快取登錄設定如下所示: 檔案伺服器,您可能會想要試試1GB。[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters] "MaxSystemCacheMBytes" = dword: 00000400 "MinSystemCacheMBytes" = dword: 00000064 "SampleIntervalSecs" = dword: 0000003c "CacheUpdateThresholdMBytes" = dword: 00000064 Exchange 2007,您可能會想要嘗試 500 MB: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters] "MaxSystemCacheMBytes" = dword: 000001F4 "MinSystemCacheMBytes" = dword: 00000064 "SampleIntervalSecs" = dword: 0000003c "CacheUpdateThresholdMBytes" = dword: 00000064 SQL 2005 及更新版本在使用 SQL EE 時過去使用的是2GB: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters] "MaxSystemCacheMBytes" = dword: 000007D0 "MinSystemCacheMBytes" = dword: 00000064 "SampleIntervalSecs" = dword: 0000003c "CacheUpdateThresholdMBytes" = dword:00000064

其他相關資訊

若要解決此問題,請使用 GetSystemFileCacheSize API 函數和 SetSystemFileCacheSize API 函數,為系統檔案快取的工作集設定最大值或最小值大小。 使用這些函數是唯一受支援的方法,以限制系統檔案快取的實體記憶體使用量。Microsoft Windows 動態快取服務是一個範例服務,示範如何使用這些 Api 來將這個問題的影響降至最低的一個策略。安裝和使用 Microsoft 動態快取服務不會導致排除 Microsoft Windows 支援。 此服務及其原始程式碼是以如何使用 Microsoft 支援的 Api 來減少檔案系統快取速度的範例所提供。您可以從下列 Microsoft 網站取得服務與原始程式碼:

HTTP://www.microsoft.com/download/details.aspx?FamilyID=e24ade0a-5efe-43c8-b9c3-5d0ecb2f39af&9508 = en

其他資源

閱讀章節 9 (記憶體管理) 與 10 () Windows 內部版本(第5版)。[記憶體管理] () 博客文章 的大型系統快取問題較慢的檔案複製問題博客文章Windows 版本 的記憶體限制976618當系統檔案快取佔用大部分的物理 RAM 918483 時,您在應用程式和服務中遇到效能問題 如何減少 microsoft server 232271 中的緩衝集區記憶體分頁64在 windows XP 中啟用系統快取模式時,如何使用 microsoft server 837331 中的895932 [快取 HTTP://technet2.microsoft.com/windowsserver/en/library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspx] LargeSystemCache TechNet 主題RamMap 博客文章 

狀態

Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。