Težava s predpomnilnikom datotečnega sistema v operacijskem sistemu Windows Server 2008 R2

Na enem od datotečni strežniki z operacijskim sistemom Windows Server 2008 R2 je prišlo do težave z visokim pomnilnikom naključnega dostopa (RAM), kar je povzročilo težave z delovanjem strežnika in storitvami na njem. Kot se je izkazalo, je bil spomin zamašen predpomnilnik sistemskih datotek z metapodatki datotečnega sistema. Morebiti vplivajo vsi datotečni strežniki z velikim številom datotek, do katerih uporabnik dostopa. Najbolj kritična težava je za 64-bitne različice operacijskega sistema Windows, pri katerih lahko velikost metafike v pomnilniku zasede skoraj celotno zmogljivost nameščenega RAM-a. V članku bomo razumeli, kako se težava manifestira, opredelili njene vire in rešitve.

Vsebina:

  • Velika obremenitev RAM-a na datotečnem strežniku Windows
  • Kaj je metafil v sistemu Windows??
  • Hitro počistite metafilno datoteko MFT v pomnilniku
  • Storitev dinamičnega predpomnilnika za upravljanje predpomnilnika datotek

Velika obremenitev RAM-a na datotečnem strežniku Windows

Težava se kaže tako: v upravitelju opravil (upravitelj opravil) vidimo, da je na strežniku zasedena RAM 95–99%.

Če odprete zavihek procesa, ne boste mogli najti nekega uhajanja postopka z nenormalno veliko porabo pomnilnika. Če naključno seštejete pomnilnik, ki ga zasedajo vsi procesi, prikazani v upravitelju opravil, ne morete niti blizu 50% fizičnega pomnilnika, nameščenega na strežniku. Pa kdo je pojedel ves spomin?

Pomožni program RAMMap (Mark Russinovich) lahko resnično razčleni uporabo RAM-a. Arhiv naložimo s pripomočkom in zaženemo datoteko RAMMap.exe s skrbniškimi pravicami iz arhiva. Zavihek Uporaba Šteje, vidimo, da največ fizičnega pomnilnika objekt uporablja Metafile (v našem primeru predstavlja 11 od 25 GB RAM-a strežnika).

Kaj je metafil v sistemu Windows??

Metafile - je del sistemskega predpomnilnika, ki vsebuje metapodatke datotečnega sistema NTFS in se uporablja za povečanje hitrosti datotečnega sistema pri dostopu do datotek. Metapodatki NTFS vključujejo podatke MFT (glavna datoteka tabela). Za vsako datoteko / mapo, do katere so uporabniki dostopali, se v metafili ustvari ustrezen blok z velikostjo najmanj 1 Kb (vnos o atributu vsake datoteke traja 1kb in vsaka datoteka ima vsaj en atribut). Tako lahko na datotečnih strežnikih z velikim številom datotek, ki so neprestano dostopni, velikost sistemskega predpomnilnika NTFS (metafile) lahko doseže več gigabajtov.

Onemogočanje tega predpomnilnika ali upravljanje s standardnimi orodji za Windows ne bo uspelo. Kot rešitev lahko povečate količino pomnilnika na strežniku, vendar to še zdaleč ni vedno mogoče..

Če znova zaženete strežnik, se sprosti pomnilnik metafil, vendar sčasoma velikost metafike v pomnilniku še vedno nenadzorovano raste.

Na primer, lahko ocenite velikost tabele MFT s pomočjo drugega pripomočka Russinovich - ntfsinfo. Na primer, v našem primeru za 2 TB disk je velikost MFT tabele 13 GB.

Hitro počistite metafilno datoteko MFT v pomnilniku

Pomožni program RAMMap omogoča hitro čiščenje rabljenega pomnilnika iz smeti brez potrebe po ponovnem zagonu strežnika. Če želite to narediti, izberite razdelek v meniju Prazno -> Delovni set praznega sistema. Po tej operaciji se je velikost pomnilnika pod metafile zmanjšala več desetkrat, odstotek RAM-a, ki ga uporablja strežnik, pa se je zmanjšal z 95% na 26%.

Glavna pomanjkljivost te metode je postopek ročnega čiščenja in se na noben način ne avtomatizira..

Storitev dinamičnega predpomnilnika za upravljanje predpomnilnika datotek

Druga, bolj kardinalna rešitev problema velike obremenitve RAM-a je metafil datoteke datotečnega sistema  Dinamičen Predpomnilnik Storitev (http://www.microsoft.com/en-us/download/details.aspx?id=9258). Ta storitev prek sistemskega API-ja omogoča upravljanje parametrov dodeljenega predpomnilnika.

Je pomembno. To rešitev uporabite le, če imate zgoraj opisane težave. Namestitev te storitve ne bo univerzalna rešitev iz drugih razlogov, da bi na strežnikih zmanjkalo pomnilnika.

Namestitev DynCache je preprosta (podrobna navodila so v arhivu s programom).

  1. Kopirajte datoteko v Dyncache.exe v katalog  % SystemRoot% \ System32
  2. Ustvari storitev Dyncache ekipasc ustvari DynCache binpath =% SystemRoot% \ System32 \ DynCache.exe start = auto type = last DisplayName = "Dynamic Cache Service"
  3. Uvozi datoteko Dyncache.reg v register (vsebuje privzete vrednosti)
  4. Spremenite vrednosti naslednjih registrskih ključev HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ DynCache \ Parametri
    • MaxSystemCacheMBytes: 4096 (dec) - največja velikost predpomnilnika
    • MinSystemCacheMBytes: 100 (dec) - najmanjša velikost

    Opomba. Te in druge nastavitve storitev DynCache je treba prilagoditi glede na količino nameščenega pomnilnika in nalaganja strežnika, zahtevano zmogljivost itd. Praviloma ne smete nastaviti velikosti predpomnilnika na več kot polovico RAM-a, nameščenega na strežniku. Po spremembi storitve DynCache ni treba znova zagnati. spremembe sledijo dinamično.
  5. Zaženite storitev z ukazom sc start DynCache
Opomba. Če morate storitev odstraniti, uporabite navodila.

V našem primeru je po namestitvi storitve DynCache poraba pomnilnika metafilna prenehala presegati vrednost 4 GB, ki smo jo postavili. Uporabniki niso odkrili težav z poslabšanjem zmogljivosti datotečnega strežnika.