Problem visokog predmemorije datotečnog sustava na Windows Server 2008 R2

Na jednom od poslužitelji datoteka pri pokretanju Windows Server 2008 R2, došlo je do problema s visokom memorijom s slučajnim pristupom (RAM), što je rezultiralo problemima s performansama poslužitelja i usluga na njemu. Kako se ispostavilo, memorija je bila začepljena predmemorija datotečnih datoteka s metapodacima datotečnog sustava. Mogući su utjecaji na sve poslužitelje datoteka s velikim brojem datoteka kojima korisnik pristupa. Najkritičniji problem je za 64-bitne verzije sustava Windows, na kojima veličina metafila u memoriji može zauzeti gotovo cijeli kapacitet instaliranog RAM-a. U članku ćemo razumjeti kako se problem očituje, identificirati njegove izvore i rješenja.

sadržaj:

  • Veliko učitavanje RAM-a na Windows datotečnom poslužitelju
  • Što je metafile u sustavu Windows??
  • Brzo očistite MFT metafile u memoriji
  • Usluga dinamičnog predmemoriranja za upravljanje predmemorijom datoteka

Veliko učitavanje RAM-a na Windows datotečnom poslužitelju

Problem se očituje na sljedeći način: u upravitelju zadataka (upravitelju zadataka) vidimo da na poslužitelju RAM-a zauzima 95-99%.

Idite na karticu procesa, nećete moći pronaći neki procuriv proces s nenormalno visokom potrošnjom memorije. Pored toga, ako nasumično dodate memoriju koja je zauzeta svim procesima prikazanim u upravitelju zadataka, ne možete ni blizu 50% fizičke memorije instalirane na poslužitelju. Pa tko je pojeo svu uspomenu?

Uslužni program RAMMap (Mark Russinovich) može pružiti stvarni kvar na korištenje RAM-a. Arhivu preuzimamo s uslužnim programom i pokrećemo datoteku RAMMap.exe s administratorskim pravima iz arhive. kartica upotreba broji, vidimo da najviše fizičke memorije objekt koristi Metafile (u našem slučaju to čini 11 od 25 GB RAM-a poslužitelja).

Što je metafile u sustavu Windows??

Metafile (Metafile) - to je dio sistemske predmemorije koja sadrži metapodatke NTFS datotečnog sustava i koristi se za povećanje brzine datotečnog sustava prilikom pristupa datotekama. NTFS metapodaci uključuju podatke MFT (glavna datoteka tablica). Za svaku datoteku / mapu kojoj su korisnici pristupili stvara se odgovarajući blok u metafiliji veličine najmanje 1 Kb (unos o atributu svake datoteke traje 1 kb, a svaka datoteka ima najmanje jedan atribut). Tako na datotečnim poslužiteljima s velikim brojem datoteka kojima se neprestano pristupa, veličina predmemorije sustava NTFS (metafile) može doseći nekoliko gigabajta.

Onemogućivanje ove predmemorije ili upravljanje pomoću standardnih Windows alata neće uspjeti. Kao rješenje možete povećati količinu memorije na poslužitelju, ali to je daleko od uvijek moguće..

Ako ponovno pokrenete poslužitelj, memorija koju koristi metafil se oslobađa, ali s vremenom veličina metafila u memoriji i dalje počinje nekontrolirano rasti.

Na primjer, možete procijeniti veličinu MFT tablice pomoću drugog uslužnog programa Russinovich - ntfsinfo. Na primjer, u našem primjeru za disk od 2 TB, veličina MFT tablice je 13 GB.

Brzo očistite MFT metafile u memoriji

Alat RAMMap pruža mogućnost brzog čišćenja korištene memorije sa smeća bez potrebe za ponovnim pokretanjem poslužitelja. Da biste to učinili, odaberite odjeljak u izborniku Prazno -> Prazan radni set sustava. Nakon ove operacije, veličina memorije pod metafiljem smanjila se desecima puta, a postotak RAM-a koji koristi poslužitelj smanjio se s 95% na 26%.

Glavni nedostatak ove metode je postupak ručnog čišćenja i ne automatizira se na bilo koji način..

Usluga dinamičnog predmemoriranja za upravljanje predmemorijom datoteka

Drugo, kardinalnije, rješenje problema s velikim opterećenjem RAM-a jest metafilija datotečnog sustava  dinamičan Cache usluga (http://www.microsoft.com/en-us/download/details.aspx?id=9258). Ova usluga putem API-ja sustava omogućuje vam upravljanje parametrima dodijeljene predmemorije.

Važno je. Koristite ovo rješenje samo ako imate gore opisane probleme. Instaliranje ove usluge neće biti univerzalno rješenje iz drugih razloga nestajanja memorije na poslužiteljima.

Instalacija DynCachea je vrlo jednostavna (detaljne upute nalaze se u arhivi s programom).

  1. Kopirajte datoteku u DynCache.exe u katalog  % SystemRoot% \ System32
  2. Stvorite uslugu DynCache timsc stvori DynCache binpath =% SystemRoot% \ System32 \ DynCache.exe start = auto type = own DisplayName = "Dynamic Cache Service"
  3. Uvezi datoteku DynCache.reg u registar (sadrži zadane vrijednosti)
  4. Promijenite vrijednosti sljedećih ključeva registra HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ DynCache \ Parametri
    • MaxSystemCacheMBytes: 4096 (dec) - maksimalna veličina predmemorije
    • MinSystemCacheMBytes: 100 (dec) - minimalna veličina

    primjedba. Ove i druge postavke usluge DynCache moraju se prilagoditi količini instalirane memorije i učitavanja poslužitelja, potrebnim performansama itd. U pravilu ne biste trebali postavljati veličinu predmemorije na više od polovice RAM-a instaliranog na poslužitelju. Nakon promjene, DynCache uslugu nije potrebno ponovno pokretati. promjene se prate dinamično.
  5. Pokrenite uslugu naredbom sc start DynCache
primjedba. Ako trebate ukloniti uslugu, koristite upute.

U našem slučaju, nakon instaliranja DynCache usluge, upotreba memorije metafilima prestala je prelaziti vrijednost od 4 GB koju smo postavili. Korisnici nisu otkrili probleme s degradacijom performansi poslužitelja datoteka.