使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

徵狀

在各種版本的 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 產品確實有上述問題。

需要更多協助嗎?

想要其他選項嗎?

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

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

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×