Vysoký problém s vyrovnávacou pamäťou súborového systému v systéme Windows Server 2008 R2

Na jednom z súborové servery Pri spustení systému Windows Server 2008 R2 sa vyskytol problém s vysokou pamäťou s ľubovoľným prístupom (RAM), čo malo za následok problémy s výkonom servera a so službami na ňom bežiacimi. Ako sa ukázalo, bola upchatá pamäť vyrovnávacia pamäť systémových súborov s metadátami súborového systému. Potenciálne ovplyvnené sú všetky súborové servery s veľkým počtom súborov, ku ktorým má užívateľ prístup. Najkritickejším problémom je 64-bitová verzia systému Windows, na ktorej môže veľkosť metasúboru v pamäti zaberať takmer celú kapacitu nainštalovanej pamäte RAM. V článku pochopíme, ako sa problém prejavuje, identifikujeme jeho zdroje a riešenia.

obsah:

  • Vysoké zaťaženie RAM na súborovom serveri Windows
  • Čo je metasúbor v systéme Windows??
  • Rýchlo vyčistite metasúbor MFT v pamäti
  • Dynamická služba vyrovnávacej pamäte pre správu vyrovnávacej pamäte súborov

Vysoké zaťaženie RAM na súborovom serveri Windows

Problém sa prejavuje nasledovne: v Správcovi úloh (Správca úloh) vidíme, že na serveri je obsadená RAM 95-99%.

Ak prejdete na kartu Proces, nebudete môcť nájsť únikový proces s neobvykle vysokou spotrebou pamäte. Okrem toho, ak náhodne doplníte pamäť obsadenú všetkými procesmi zobrazenými v správcovi úloh, nemôžete dosiahnuť ani takmer 50% fyzickej pamäte nainštalovanej na serveri. Takže kto jedol celú pamäť?

Obslužný program RAMMap (Mark Russinovich) môže poskytnúť skutočný prehľad o využití pamäte RAM. Archív stiahneme pomocou nástroja a spustíme súbor RAMMap.exe s právami správcu z archívu. pútko použitie počty, vidíme, že najviac fyzickej pamäte, ktorú objekt používa Metafile (v našom prípade predstavuje 11 z 25 GB pamäte RAM servera).

Čo je metasúbor v systéme Windows??

Metafile (metasúbor) - je súčasťou systémovej vyrovnávacej pamäte, ktorá obsahuje metaúdaje súborového systému NTFS a používa sa na zvýšenie rýchlosti systému súborov pri prístupe k súborom. Metadáta NTFS zahŕňajú údaje MFT (Master File Table). Pre každý súbor / priečinok, ku ktorému majú používatelia prístup, sa vytvorí zodpovedajúci blok v metasúbore s veľkosťou najmenej 1 kB (položka o atribúte každého súboru trvá 1 kB a každý súbor má aspoň jeden atribút). Na súborových serveroch s veľkým počtom súborov, ku ktorým je nepretržitý prístup, môže teda veľkosť systémovej vyrovnávacej pamäte NTFS (metasúbor) dosiahnuť niekoľko gigabajtov..

Vypnutie tejto vyrovnávacej pamäte alebo jej správa pomocou štandardných nástrojov systému Windows zlyhá. Ako riešenie môžete zvýšiť množstvo pamäte na serveri, ale to zďaleka nie je možné..

Ak reštartujete server, pamäť použitá metasúborom sa uvoľní, ale postupom času sa veľkosť metasúboru v pamäti stále nekontrolovateľne zvyšuje..

Napríklad môžete odhadnúť veľkosť tabuľky MFT pomocou iného nástroja Russinovich - ntfsinfo. Napríklad v našom príklade pre disk 2 TB je veľkosť tabuľky MFT 13 GB.

Rýchlo vyčistite metasúbor MFT v pamäti

Obslužný program RAMMap poskytuje možnosť rýchlo vyčistiť použitú pamäť z odpadkov bez potreby reštartovania servera. Ak to chcete urobiť, vyberte časť v ponuke Empty -> Empty System Working Set. Po tejto operácii sa veľkosť pamäte pod metasúborom niekoľkokrát znížila a percento pamäte RAM využívané serverom kleslo z 95% na 26%.

Hlavnou nevýhodou tejto metódy je proces ručného čistenia a neautomatizuje sa žiadnym spôsobom..

Dynamická služba vyrovnávacej pamäte pre správu vyrovnávacej pamäte súborov

Ďalším zásadnejším riešením problému s vysokým zaťažením RAM je metasúbor súborového systému. Inštalácia služby  dynamický cache služba (http://www.microsoft.com/en-us/download/details.aspx?id=9258). Táto služba prostredníctvom systémového rozhrania API vám umožňuje spravovať parametre pridelenej vyrovnávacej pamäte.

Je dôležité. Toto riešenie používajte, iba ak máte vyššie uvedené problémy. Inštalácia tejto služby nebude univerzálnym riešením z iných dôvodov vyčerpania pamäte na serveroch.

Inštalácia DynCache je pomerne jednoduchá (podrobné pokyny sú v archíve s programom).

  1. Skopírujte súbor do DynCache.exe do katalógu  % SystemRoot% \ System32
  2. Vytvorte službu DynCache tímsc create DynCache binpath =% SystemRoot% \ System32 \ DynCache.exe start = auto type = own DisplayName = "Dynamic Cache Service"
  3. Importovať súbor DynCache.reg do registra (obsahuje predvolené hodnoty)
  4. Zmeňte hodnoty nasledujúcich kľúčov databázy Registry HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ DynCache \ Parameters
    • MaxSystemCacheMBytes: 4096 (dec) - maximálna veľkosť vyrovnávacej pamäte
    • MinSystemCacheMBytes: 100 (dec) - minimálna veľkosť

    poznámka. Tieto a ďalšie nastavenia služieb DynCache sa musia upraviť podľa množstva nainštalovanej pamäte a zaťaženia servera, požadovaného výkonu atď. Spravidla by ste nemali nastavovať veľkosť vyrovnávacej pamäte na viac ako polovicu pamäte RAM nainštalovanej na serveri. Po vykonaní zmeny nie je potrebné službu DynCache reštartovať. zmeny sa sledujú dynamicky.
  5. Spustite službu pomocou príkazu sc začnite DynCache
poznámka. Ak potrebujete službu odstrániť, postupujte podľa pokynov.

V našom prípade po nainštalovaní služby DynCache prestalo využitie pamäte metasúborom prekročiť hodnotu 4 GB, ktorú sme nastavili. Používatelia neodhalili žiadne problémy so znížením výkonu súborového servera.