Symptom
Du kan uppleva 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 symptom:
-
Det tillgängliga minnet är nästan slut.
-
Systemet tar fil-cache större delen av det fysiska RAM-minnet.
-
Det finns en kontinuerlig och hög volym cachelagrade läsförfrågningar på hårddisken.
Orsak
Minneshantering i Microsoft Windows-operativsystem använder en behovsbaserad algoritm. Om en process begär och använder en stor mängd minne ökar storleken på uppsättningen (antalet minnessidor i det fysiska RAM-minnet) för processen. Om dessa förfrågningar är kontinuerliga och avmarkerade kommer arbetsuppsättningen av processen att växa till allt fysiskt RAM-minne. I det här fallet sidaas arbetsuppsättningarna för alla andra processer ut på hårddisken. Det här beteendet försämrar prestandan för program och tjänster eftersom minnessidorna kontinuerligt skrivs till hårddisken och läses från hårddisken.
Det här beteendet gäller även för systemadministratörens arbetsuppsättning fil-cache. Om det finns en kontinuerlig och hög volym cachelagrade läsförfrågningar från en process eller från en drivrutin, kommer storleken på systemets arbetsuppsättning att växa fil-cache för att uppfylla detta behov. Systemet fil-cache det fysiska RAM-minnet. Det finns därför inte tillräckligt mycket fysiskt RAM-minne tillgängligt för andra processer. På 32-bitarsversioner av Microsoft Windows-operativsystem som är tidigare än Windows Vista har arbetsuppsättningarna för systemets fil-cache en teoretisk minnesgräns på mindre än 1 gigabyte (GB). Begränsningen av det virtuella adressintervallet förhindrar att systemets arbetsuppsättningar fil-cache tar bort det fysiska RAM-minnet. På 32-bitarsversioner av Windows Vista tilldelas kernel-resurser dynamiskt. Systemuppsättningen för fil-cache använder det virtuella adressintervallet för kernelläget på bekostnad av andra kernelresurser. Begränsningen för det här minnesintervallet är mindre än 2 GB. Om datorn har mer än 2 GB fysiskt RAM-minne tar cachen inte ut hela det fysiska RAM-minnet. Men cachen kan förbruka det virtuella adressutrymmet i kerneln. Det kan orsaka tilldelningsproblem för andra kernelkomponenter. På 64-bitarsversioner av Windows-operativsystem är storleken på det virtuella adressintervallet vanligtvis större än det fysiska RAM-minnet. I det här fallet kan systemets arbetsuppsättning öka fil-cache ta upp större delen av det fysiska RAM-minnet.Lösning
Minneshanteringsalgoritmerna i Windows 7 och Windows Server 2008 R2 har uppdaterats för att hantera många problem med cachelagring av filer som hittades i tidigare versioner av Windows. Det finns bara vissa unika situationer där du behöver implementera den här tjänsten på datorer med Windows 7 eller Windows Server 2008 R2.
Så här avgör du om systemet påverkas
Installera RamMap-verktyget SysInternals för att avgöra om ditt system påverkas av det här problemet. Du kan hämta verktyget från följande Windows Sysinternals-webbplats:
http://technet.microsoft.com/en-us/sysinternals/ff700229 När du kör verktyget väljer du alternativet Använd antal. Då visas flera kolumner som visar det aktuella mönstret för minnesanvändning. Klicka på kolumnen Aktiv om du vill sortera efter antalet byte som används och anteckna den högsta användningen direkt under summan. Om det högsta antalet användningar är "Metafil" och om en stor del tillgängligt minne används har du problem med System File Cache som beskrivs i avsnittet "Symptom". Du kan kontrollera det genom att använda Performance Monitor för att övervaka räknare för inkommande byte för Minne\System och se hur cachen växer kontinuerligt med tiden. Bild 1. Exempel på RamMap-utdata där datorn upplever problemet. Bild 2. Exempel på RamMap-utdata där datorn inte upplever problemet. Om räknare för inaktkommande byte för minne\system i Performance Monitor visar en uppåtgående trend över tiden upplever datorn problemet, som du ser i bild 3. Bild 3. Exempel på prestandaövervakning där datorn upplever problemet över tid.
Krav för omstart
Du behöver inte starta om datorn när du installerar, avinstallerar eller använder den här tjänsten.
Om du läser den här artikeln på grund av att du arbetar med en kund som tror att de påverkas av problemet kan du lösa problemet genom att följa de här anvisningarna.
-
Kontrollera att kundens RamMap-utdata, perfmon- eller poolmon-data bekräftar att System File Cache tar upp det mesta av det fysiska RAM-minnet, enligt beskrivningen ovan.
-
Hämta Windows Dynamic Cache Service genom att ladda ned den här.
-
Här följer några av inställningarna för dynamic cache-registret:
Filservrar kan du prova 1 GB. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters] "MaxSystemCacheMBytes"=dword:00000400 "MinSystemCacheMBytes"=dword:00000064 "SampleIntervalSecs"=dword:0000003c "CacheUpdateThresholdMBytes"=dword:00000064 Exchange 2007 kanske du 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 senare, tidigare när du arbetade med SQL EE, har använt 2 GB: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters] "MaxSystemCacheMBytes"=dword:000007D0 "MinSystemCacheMBytes"=dword:00000064 "SampleIntervalSecs"=dword:0000003c "CacheUpdateThresholdMBytes"=dword:00000064
Mer information
Du kan komma runt det här problemet genom att använda API-funktionen GetSystemFileCacheSize API och SETSystemFileCacheSize API-funktionen för att ange det högsta eller minsta storleksvärdet för system-fil-cache. De här funktionerna är den enda metod som stöds för att begränsa förbrukningen i fysiskt minne från fil-cache.
Microsoft Windows Dynamic Cache Service är ett exempel på en tjänst som visar en strategi för att använda dessa API:er för att minimera effekterna av det här problemet. Installation och användning av Microsofts dynamiska cachetjänst innebär inte att stöd för Microsoft Windows exkluderas. Den här tjänsten och dess källkod tillhandahålls som ett exempel på hur du använder API:er som stöds av Microsoft för att minska tillväxten för cachen för filsystem. Du kan hämta tjänsten och källkoden från följande Microsoft-webbplats:Ytterligare resurser
Läs kapitel 9 (minneshantering) och 10 (cachehanteraren) för Windows Internals, den 5:e utgåvan.BLOGGINLÄGG OM MINNESHANTERING (PROBLEM MED STORA SYSTEMCACHE) Blogginlägg om problem med stor filkopia långsamt Minnesbegränsningar för Windows-versioner976618 You experience performance issues in applications and services when the system fil-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 Saker att tänka på innan du aktiverar systemcacheläget i Windows XP 232271 Optimera Windows NT Server med hjälp av Registry 837331 About Cache Manager i Windows Server 2003 http://technet2.microsoft.com/windowsserver/en/library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspxLargeSystemCache TechNet TopicRamMap Blog Post
Status
Microsoft har bekräftat att det är ett problem i de Microsoft-produkter som listas i avsnittet "Gäller för".