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).
- Kopirajte datoteko v Dyncache.exe v katalog % SystemRoot% \ System32
- Ustvari storitev Dyncache ekipa
sc ustvari DynCache binpath =% SystemRoot% \ System32 \ DynCache.exe start = auto type = last DisplayName = "Dynamic Cache Service"
- Uvozi datoteko Dyncache.reg v register (vsebuje privzete vrednosti)
- 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
- Zaženite storitev z ukazom
sc start DynCache
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.