Jelenségek
A Windows XP, a Windows Vista, a Windows Server 2003, a Windows Server 2008 és a Windows Server 2008 R2 különböző verzióiban tapasztal teljesítménybeli problémákat az alkalmazásokban és szolgáltatásokban. A következő tünetek is jelentkeznek:
-
A rendelkezésre álló memória majdnem elmerül.
-
A rendszerfájl-gyorsítótár a fizikai RAM nagyját felhasználja.
-
A merevlemezhez folyamatos és nagy mennyiségű gyorsítótárazott olvasási kérés van.
A probléma oka
A Microsoft Windows operációs rendszerek memóriakezelése igényalapú algoritmust használ. Ha egy folyamat nagy mennyiségű memóriát igényel, a folyamat munkakészletének mérete (a fizikai RAM-ban található memórialapok száma) nő. Ha ezek a kérések folyamatosak és nincsenek bejelölve, a folyamat munkakészlete úgy nő, hogy az az összes fizikai RAM-ot felhasználja. Ebben a helyzetben az összes többi folyamat munkakészletei a merevlemezre vannak lapként kilaposodva. Ez a viselkedés csökkenti az alkalmazások és szolgáltatások teljesítményét, mivel a rendszer folyamatosan a merevlemezre írja a memórialapokat, és a merevlemezről olvassa be az adatokat.
Ez a viselkedés a rendszerfájl-gyorsítótár működő halmazára is érvényes. Ha egy folyamat vagy illesztőprogram folyamatos és nagy mennyiségű gyorsítótárazott olvasási kérést kér, a rendszerfájl-gyorsítótár munkamennyisége ennek megfelelően nő. A rendszerfájl-gyorsítótár felhasználja a fizikai RAM-ot. Ezért más folyamatokhoz nem áll rendelkezésre elegendő mennyiségű fizikai RAM.
A Microsoft Windows operációs rendszer Windows Vista rendszernél korábbi 32 bites verzióiban a rendszerfájl-gyorsítótár működő készletei memóriakorlátja kisebb, mint 1 gigabájt (GB). A virtuális címtartomány korlátozása megakadályozza, hogy a rendszerfájl-gyorsítótár működő készlete kimerítse a fizikai RAM-ot.
A Windows Vista operációs rendszerek 32 bites verzióiban a rendszermag erőforrásait dinamikusan osztják ki. A rendszerfájl-gyorsítótár munkakészlete nő, hogy a rendszermag mód virtuális címtartományát felhasználja a többi kernelerőforrás költségén. Ennek a memóriatartománynak a korlátozása kisebb, mint 2 GB. Ha a számítógép 2 GB fizikai RAM-nál több memóriával rendelkezik, a gyorsítótár nem tudja kimerni az összes fizikai RAM-ot. A gyorsítótár azonban kimerheti a virtuális címterületet a kernelben. Ez más kernelösszetevők kiosztási sikertelenségét okozhatja.
A Windows operációs rendszerek 64 bites verzióiban a virtuális címtartomány mérete általában nagyobb, mint a fizikai RAM. Ebben az esetben a rendszerfájl-gyorsítótár munkakészlete nőhet, hogy a fizikai RAM nagy része elkedődhet.
Megoldás
A Windows 7 és a Windows Server 2008 R2 operációs rendszerek memóriakezelési algoritmusai úgy frissültek, hogy a Windows korábbi verzióiban található számos fájl-gyorsítótárazási problémát megoldják. Csak bizonyos egyedi helyzetekben kell implementálni ezt a szolgáltatást Windows 7 vagy Windows Server 2008 R2 rendszerű számítógépeken.
Annak megállapítása, hogy a rendszer érintett-e
Ha meg szeretné állapítani, hogy a rendszerére hatással van-e a probléma, telepítse a SysInternals RamMap eszközt. Az eszközt a Következő Windows Sysinternals webhelyről szerezheti be:
http://technet.microsoft.com/en-us/sysinternals/ff700229
Az eszköz futtatásakor válassza a Darabszámok használata lehetőséget. Ez több oszlopot jelenít meg, amelyek a memóriahasználat aktuális mintáját mutatják. Kattintson az Aktív oszlopra a használt bájtok száma alapján való rendezéshez, és jegyezze fel a legfelső használatot közvetlenül az összeg alatt.
Ha a legnépszerűbb használatok száma "Metafile", és a rendelkezésre álló memória nagy részét használja, a Rendszerfájl-gyorsítótár "Tünetek" című szakaszában ismertetett probléma jelentkezik. Ezt a Teljesítményfigyelővel ellenőrizheti a Memory\System Cache Resident Bytes számláló figyelése érdekében, és láthatja, hogy a gyorsítótár folyamatosan növekszik az idő múlásával.
1. ábra Példa RamMap kimenetre, amelyben a számítógép tapasztalja a problémát.
2. ábra Példa RamMap-kimenetre, amelyben a számítógép nem tapasztalja a problémát.
Ha a Memória\Rendszer gyorsítótára a Teljesítményfigyelőben felfelé mutató trendet mutat az időben, a számítógép a 3. ábrán látható módon tapasztalja a problémát.
3. ábra. Példa teljesítményfigyelő kimenetre, amelyben a számítógép idővel tapasztalja a problémát.
Újraindítási követelmények
A szolgáltatás telepítése, eltávolítása vagy használata esetén nem kell újraindítani a számítógépet.
Ha azért olvassa ezt a cikket, mert egy olyan ügyféllel dolgozik együtt, aki úgy véli, hogy a probléma érinti őket, az alábbi lépéseket követve megoldhatja a problémát.
-
Győződjön meg arról, hogy az ügyfél RamMap-kimenete, perfmon vagy poolmon adatai megerősítik, hogy a rendszerfájl-gyorsítótár a fizikai RAM nagy része fel van-e használva a korábban ismertetett módon.
-
A Windows Dinamikus gyorsítótár szolgáltatás beszerzéséhez töltse le ide.
-
A dinamikus gyorsítótár beállításjegyzékének egyes beállításai a következők:
Fájlkiszolgálók esetén érdemes lehet 1 GB-ot kipróbálni.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes"=dword:00000400
"MinSystemCacheMBytes"=dword:00000064
"SampleIntervalSecs"=dword:0000003c
"CacheUpdateThresholdMBytes"=dword:00000064
Exchange 2007, érdemes lehet kipróbálnia az 500 MB-ot:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes"=dword:000001F4
"MinSystemCacheMBytes"=dword:00000064
"SampleIntervalSecs"=dword:0000003c
"CacheUpdateThresholdMBytes"=dword:00000064
Az SQL 2005-ös és újabb verziók korábban 2 GB-ot használtak az SQL EE-hez:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes"=dword:000007D0
"MinSystemCacheMBytes"=dword:00000064
"SampleIntervalSecs"=dword:0000003c
"CacheUpdateThresholdMBytes"=dword:00000064
További információ
A probléma megoldásához használja a GetSystemFileCacheSize API és a SetSystemFileCacheSize API függvényt a rendszerfájl-gyorsítótár működő készletei maximális vagy minimális méretének beállításához. E függvények használata az egyetlen támogatott módszer, amely korlátozza a fizikai memória használatát a rendszerfájl-gyorsítótárban.
A Microsoft Windows dynamic cache service egy mintaszolgáltatás, amely bemutatja a probléma hatásának minimálisra csökkentése érdekében ezen API-k használatának egyik stratégiáját.
A Microsoft Dinamikus gyorsítótár szolgáltatás telepítése és használata nem jelenti a Microsoft Windows támogatásának kizárását. Ez a szolgáltatás és a forráskódja példaként használhatja a Microsoft által támogatott API-kat a fájlrendszer-gyorsítótár méretének csökkentéséhez.
A szolgáltatást és a forráskódot a Microsoft következő webhelyén szerezheti be:
További források
Olvassa el a Windows Internals 9. (Memóriakezelés) és 10. (Gyorsítótárkezelő) fejezetét, az 5. kiadást.
Memóriakezelés (NAGY RENDSZER-GYORSÍTÓTÁR PROBLÉMÁK) blogbejegyzés
Slow Large File Copy Issues Blog Post
A Windows-kiadások memóriakorlátai
976618 Akkor tapasztal teljesítménybeli problémákat az alkalmazásokban és a szolgáltatásokban, ha a rendszerfájl-gyorsítótár a fizikai RAM nagy része 918483-at használ, hogyan csökkenthető a pufferkészlet memóriájának lapozása az
SQL Server 895932 64 bites verziójában érdemes megfontolni, mielőtt engedélyezné a Windows XP 232271 rendszer-gyorsítótáras üzemmódját a Windows NT Server optimalizálásához a Windows Server 2003 rendszerBeli Gyorsítótár-kezelő beállításjegyzékének
837331-es verziójával
http://technet2.microsoft.com/windowsserver/en/library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspx
LargeSystemCache TechNetTopic
RamMap blogbejegyzésben
Állapot
A Microsoft megerősítette, hogy ez a probléma „A következőkre vonatkozik:” részben felsorolt Microsoft-termékekre vonatkozik.