Vysoký problém s mezipamětí souborového systému v systému Windows Server 2008 R2

Na jednom z souborové servery se systémem Windows Server 2008 R2 došlo k potížím s vysokou pamětí s náhodným přístupem (RAM), což mělo za následek problémy s výkonem serveru a službami na něm spuštěnými. Jak se ukázalo, byla paměť ucpaná mezipaměť systémových souborů s metadaty systému souborů. Všechny souborové servery s velkým počtem souborů, ke kterým má uživatel přístup, jsou potenciálně ovlivněny. Nejkritičtější problém je u 64bitových verzí systému Windows, na nichž může velikost metasouboru v paměti zabírat téměř celou kapacitu nainstalované paměti RAM. V článku pochopíme, jak se problém projevuje, identifikovat jeho zdroje a řešení.

Obsah:

  • Vysoké zatížení RAM na souborovém serveru Windows
  • Co je metasoubor ve Windows??
  • Rychle vyčistěte metasoubor MFT v paměti
  • Dynamic Cache Service for File Cache Management

Vysoké zatížení RAM na souborovém serveru Windows

Problém se projevuje takto: ve Správci úloh (Správce úloh) vidíme, že na serveru je RAM obsazena 95-99%.

Pokud přejdete na kartu Proces, nebudete moci najít nějaký únikový proces s neobvykle vysokou spotřebou paměti. Kromě toho, pokud náhodně přidáte paměť zabíranou všemi procesy zobrazenými ve správci úloh, nemůžete mít ani téměř 50% fyzické paměti nainstalované na serveru. Takže kdo snědl veškerou paměť?

Nástroj RAMMap (Mark Russinovich) může poskytnout skutečný přehled o využití paměti RAM. Stáhneme archiv pomocí obslužného programu a spustíme soubor RAMMap.exe s právy správce z archivu. Tab Použití Se počítá, vidíme, že nejvíce fyzické paměti, které objekt používá Metafile (v našem případě to odpovídá 11 z 25 GB paměti RAM serveru).

Co je metasoubor ve Windows??

Metafile - je součástí systémové mezipaměti, která obsahuje metadata systému souborů NTFS a používá se ke zvýšení rychlosti systému souborů při přístupu k souborům. Metadata NTFS zahrnují data MFT (Master File Table). Pro každý soubor / složku, ke které mají uživatelé přístup, je v metasouboru vytvořen odpovídající blok o velikosti alespoň 1 kB (položka o atributu každého souboru trvá 1 kB a každý soubor má alespoň jeden atribut). Na souborových serverech s velkým počtem souborů, které jsou neustále přístupné, tedy velikost systémové mezipaměti NTFS (metasoubor) může dosáhnout několika gigabajtů.

Deaktivace této mezipaměti nebo její správa pomocí standardních nástrojů systému Windows selže. Jako řešení můžete zvýšit množství paměti na serveru, ale to zdaleka není vždy možné..

Pokud restartujete server, je paměť použitá metasoubor uvolněna, ale postupem času se velikost metasouboru v paměti stále nekontrolovatelně zvyšuje.

Například můžete odhadnout velikost tabulky MFT pomocí jiného nástroje Russinovich - ntfsinfo. Například v našem příkladu pro disk 2 TB je velikost tabulky MFT 13 GB.

Rychle vyčistěte metasoubor MFT v paměti

Obslužný program RAMMap poskytuje možnost rychle vymazat použitou paměť z odpadků bez nutnosti restartování serveru. Chcete-li to provést, vyberte sekci v nabídce Empty -> Empty System Working Set. Po této operaci se velikost paměti pod metasouborem desítkykrát snížila a procento paměti RAM použité serverem kleslo z 95% na 26%.

Hlavní nevýhodou této metody je proces ručního čištění a neautomatizuje se žádným způsobem..

Dynamic Cache Service for File Cache Management

Dalším, zásadnějším řešením problému s vysokým zatížením RAM je metasoubor souborového systému. Instalace služby  Dynamický Cache Služba (http://www.microsoft.com/en-us/download/details.aspx?id=9258). Tato služba prostřednictvím systémového rozhraní API umožňuje spravovat parametry přidělené mezipaměti.

Je důležité. Toto řešení používejte, pouze pokud máte výše popsané problémy. Instalace této služby nebude univerzálním řešením z jiných důvodů vyčerpání paměti na serverech.

Instalace DynCache je poměrně jednoduchá (podrobné pokyny jsou v archivu s programem).

  1. Zkopírujte soubor do Dyncache.exe do katalogu  % SystemRoot% \ System32
  2. Vytvořte službu Dyncache týmsc create DynCache binpath =% SystemRoot% \ System32 \ DynCache.exe start = auto type = own DisplayName = "Dynamic Cache Service"
  3. Importovat soubor Dyncache.reg do registru (obsahuje výchozí hodnoty)
  4. Změňte hodnoty následujících klíčů registru HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ DynCache \ Parameters
    • MaxSystemCacheMBytes: 4096 (dec) - maximální velikost mezipaměti
    • MinSystemCacheMBytes: 100 (dec) - minimální velikost

    Poznámka:. Tato a další nastavení služby DynCache musí být upravena podle množství instalované paměti a zatížení serveru, požadovaného výkonu atd. Zpravidla byste neměli nastavovat velikost mezipaměti na více než polovinu paměti RAM nainstalované na serveru. Po provedení změny není nutné službu DynCache restartovat. změny jsou sledovány dynamicky.
  5. Spusťte službu příkazem sc spusťte DynCache
Poznámka:. Pokud potřebujete službu odebrat, postupujte podle pokynů.

V našem případě po instalaci služby DynCache přestal využití paměti metasouborem překročit hodnotu 4 GB, kterou jsme nastavili. Uživatelé neodhalili žádné problémy se snížením výkonu souborového serveru.