Prestandaproblem i program och tjänster när fil-cache-systemet förbrukar mest fysiskt RAM-minne

Gäller för: Microsoft Windows XP Professional x64 EditionWindows Vista Home BasicWindows Vista Home Premium

Symptom


Det kan uppstå prestandaproblem i program och tjänster i olika versioner av Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 och Windows Server 2008 R2. Dessutom ser du följande:
  • Tillgängligt minne är nästan slut.
  • Fil-cache-systemet förbrukar mest fysiskt RAM-minne.
  • Det finns en kontinuerlig och hög volym av cachelagrade Skriv-och läsbegäranden på hårddisken.

Orsak


Minneshantering i Microsoft Windows-operativsystem använder en algoritm för efterfrågan-baserade. Om en process begär och använder en stor mängd minne, ökar storleken på arbetsminnet (antalet minnessidor i fysiskt RAM-minne) för processen. Om dessa begäranden är kontinuerlig och oskyddad, kommer att växa arbetsminnet för en process att nyttja fysiskt minne. I det här fallet växlas arbetsminne för andra processer ut till hårddisken. Detta minskar prestanda för program och tjänster eftersom minnessidor kontinuerligt skrivs till hårddisken och läsa från hårddisken.

Detta gäller även den aktiva sidmängden för fil-cache-system. Om det finns en kontinuerlig och hög volym av cachelagrade Läs begäranden från en process eller en drivrutin, kommer att växa växlingsminnet av systemet fil-cache att möta detta behov. Fil-cache-system använder fysiskt RAM-minne. Därför finns inte tillräckliga mängder fysiskt RAM-minne för andra processer.

På 32-bitarsversioner av Microsoft Windows-operativsystem tidigare än Windows Vista har ont om systemet fil-cache en teoretisk minnesgräns för mindre än 1 GB (Gigabyte). Begränsning av det virtuella adressområdet förhindrar ont om systemet fil-cache överbelastar fysiskt RAM-minne.

På 32-bitarsversioner av Windows Vista operativsystem tilldelas kernel-resurserna dynamiskt. Den aktiva sidmängden för fil-cache-system ökar för att nyttja virtuella adressintervallet för kernel-läge på bekostnad av andra kernel-resurser. Begränsningen av området minne är mindre än 2 GB. Om datorn har mer än 2 GB fysiskt RAM-minne, kan cachen avgaser mängden fysiskt minne. Cachen kan dock avgaser virtuellt minne i kernel. Detta kan orsaka Allokeringsfel för andra kernel-komponenter.

Storleken på det virtuella adressområdet är vanligtvis större än mängden fysiskt minne på 64-bitarsversioner av Windows-operativsystem. I det här fallet kan den aktiva sidmängden för systemet fil-cache öka för att förbrukar mest fysiskt RAM-minne.

Lösning


Memory management algoritmer i operativsystemen Windows 7 och Windows Server 2008 R2 har uppdaterats löser många fil cache problem som upptäckts i tidigare versioner av Windows. Det är bara vissa unika situationer där du måste implementera den här tjänsten på datorer som kör Windows 7 eller Windows Server 2008 R2.

Ta reda på om ditt system påverkas

Ta reda på om datorn påverkas av det här problemet genom att installera verktyget SysInternals RamMap. Du kan hämta verktyget från följande Windows Sysinternals-webbplats:
 
Markera alternativet Använd räknar när du kör verktyget. Detta innehåller flera kolumner som visar aktuellt mönster av minnesanvändning. Klicka på aktiva kolumn att sortera efter antalet byte som används och Observera direkt under totalen högsta förbrukningen.

Om upp använder antal är "Metafil" och om en stor del av tillgängligt minne används du upplever problemet systemet fil-cachen som beskrivs i avsnittet "Symptom". Du kan kontrollera detta genom att använda Resursövervakaren för att övervaka räknaren Memory\System byte i systemcache och se cache växer kontinuerligt över tiden.

Bild 1. Exempel RamMap utdata som datorn har drabbats av problemet.



Figur 2. Exempel RamMap produktion där datorn inte har drabbats av problemet.



Om Memory\System byte i systemcache räknare i Resursövervakaren visar en uppåtgående trend över tiden, har datorn drabbats av problemet som visas i figur 3.

Bild 3. Exempel Performance Monitor output datorn uppstår problemet med tiden.

Krav på omstart

Du behöver inte starta om datorn när du installerar, avinstallerar eller använda den här tjänsten.
Om du vill du läsa den här artikeln eftersom du arbetar med en kund som anser att de påverkas av problemet följer du stegen för att lösa problemet.
  1. Kontrollera att kundens RamMap utdata, perfmon eller poolmon data bekräftar att filcachen systemet förbrukar mest fysiskt RAM-minne som tidigare beskrivits.
  2. Tjänsten Windows dynamisk Cache, hämtas här.
  3. Dynamisk Cache registerinställningar är följande:

    Filservrar, kanske du vill prova 1GB.
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:00000400
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    Exchange 2007, du kanske vill prova 500 MB:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000001F4
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    SQL 2005 och högre, tidigare när du arbetar med SQL EE'S, har använt 2GB:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000007D0
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

Mer Information


Undvik det här problemet genom att använda GetSystemFileCacheSize API-funktionen och SetSystemFileCacheSize API-funktionen för att ange värdet för största eller minsta storlek för aktiv sidmängd av systemet fil-cache. Användning av dessa funktioner är endast stöds metod att begränsa förbrukningen av fysiskt minne i systemet fil-cache.

Microsoft Windows dynamisk Cache-tjänsten är en tjänst för prov som visar en strategi för att använda dessa API: er för att minimera effekten av problemet.

Installera och använda tjänsten Microsoft Dynamic Cache medför inte uteslutning av stöd för Microsoft Windows. Den här tjänsten och dess källkod tillhandahålls som ett exempel på hur du använder Microsoft stöd för API: er för att minska tillväxten av filsystemets cache.

Du kan hämta service- och koden från följande Microsoft-webbplats:
 

Ytterligare resurser

Läs kapitel 9 (minneshantering) och 10 (Cache Manager) till Windows Internals, 5: e utgåvan.

MEMORY MANAGEMENT (stora SYSTEM CACHE problem) blogginlägg

Problem med långsam stora filkopiering blogginlägg

Minnesgränser för Windows-utgåvor

976618 prestandaproblem i program och tjänster när fil-cache-systemet förbrukar mest fysiskt RAM-minne

918483 hur du minskar växlingsfilens minne för buffert pool i 64-bitars version av SQL Server

895932 saker att tänka på innan du aktiverar systemet cache-läge i Windows XP

232271 hur du optimerar Windows NT Server med hjälp av registret

837331 om Cache Manager i Windows Server 2003

http://technet2.microsoft.com/windowsserver/en/library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspx

LargeSystemCache TechNet-avsnittet

RamMap blogginlägg

Status


Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".