Definicija prekomjerne memorije u virtualnom stroju gosta

Prilikom administriranja gostujućih VM-ova koji rade na domaćinima za virtualizaciju (bilo da su to VMWare ESXi ili Hyper-V), prilikom analize problema s performansama često se susreću situacije kada je količina dostupne OS memorije mnogo manja nego što operativni sustav vidi (dodijeljen). Na primjer, virtualnom stroju je dodijeljeno 8 GB memorije, upravitelj zadataka pokazuje besplatno 1 GB memorije, dok ukupna potrošnja memorije u svim pokrenutim procesima ne prelazi 3 GB. Kamo su otišli preostalih 4 GB??

Obično je razlog takvog ponašanja upotreba memorijske funkcije prekoračenja u hipervizoru.

Memorija prekorači (Ne znam definiciju na ruskom, neka dođe do pretjerivanja s memorijom) ovo je značajka hipervizora koji vam omogućuje dodijeliti više memorije virtualnim strojevima nego što ima fizički domaćin, ali bez jamstva da će se u određeno vrijeme moći dodijeliti sva tražena memorija. U pravilu, overkommit omogućuje povećanje gustoće virtualnih strojeva na domaćinu zbog činjenice da će memorija biti dinamički preraspodijeljena između njih, ovisno o trenutnom opterećenju (resursi neispunjenih / praznih VM-ova u ovom trenutku mogu se preraspodijeliti između više učitanih)

U VMWare-u jedan je od mehanizama za provođenje prekomjerne memorije Baloniranje u memoriji (istiskivanje memorije ili, ako želite, prevara). U Hyper-V funkciju provodi slična funkcija Dinamička memorija.

primjedba. Usput, i VMWare i Hyper-V koriste kompresiju memorije široko i prilično učinkovito za uštedu memorije i primjenu overcommit tehnologije..

U VMWare-u se lopta provodi kroz pokretač vmmemctl.sys (uključeno u VMware Tools), koji po potrebi mogu snimiti fizičku memoriju napuhavanjem fiktivnog procesa kuglice unutar memorije (balon). Tako zauzeta memorija postaje nedostupna aplikacijama, a hipervizor može redistribuirati oslobođenu memoriju između ostalih VM-ova. Hyper-V Dynamic memorija koristi pokretački program dmvsc.sys iz skupa integracijskih usluga (komponenta dinamičke memorije VSC). Postavkama overcommit-a upravlja administrator hipervizora..

Ali kako utvrditi iz VM-a da zapravo ima manje fizičke memorije od one koju vidi operativni sustav?

Razmislite o tome kako odrediti prisutnost i veličinu upravljačkog programa balona u OS Windows gosta. Analiziraćemo sljedeću situaciju:

VM-ovi s gostujućim Windows Server 2012 R2 dodijelili su 8 GB RAM-a. Upravitelj zadataka pokazuje da se memorija koristi na 93% (7.4 GB memorije je zauzeto). Međutim, dodate li količinu memorije koju koriste svi pokrenuti procesi, možete doći do neočekivanog zaključka - zapravo se koristi samo 2,5 GB. Kamo je otišlo 5 GB memorije? Ni upravitelj zadataka niti nadzornik resursa neće dati odgovor na ovo pitanje..

Da biste shvatili što se događa s memorijom, morate koristiti uslužni program RamMap Mark Rusinovich (u jednom od prethodnih slučajeva pokazao sam kako pomoću ovog uslužnog programa dijagnosticirati problem sa sistemskom predmemorijom datotečnog sustava). Preuzmite uslužni program s Microsoftove web stranice (https://technet.microsoft.com/en-us/library/ff700229.aspx) i pokrenite ga s administratorskim pravima. Nakon toga na kartici Upotrijebite brojanje vidimo da objekt koristi većinu memorije (5,4 GB) Vozač zaključan.

Ovo je memorija koju je hipervizor "pojeo" i redistribuirao na ostale virtualne strojeve kroz upravljački program balona u gostujućem OS-u. tj nema dovoljno memorije na domaćina hipervizora ili administratora hipervizora koji je prisilno "ubio" resurse za ovaj VM.

Trenutačni izgled memorije u VM-ovima na Hyper-V mogu dati pojedinačni brojači performansi u Monitoru performansi:

  • Hyper-V dinamička memorija -> vidljiva memorija gostiju
  • Hyper-V dinamička memorija -> fizička memorija

Da bi onemogućio ovo ponašanje, administrator hipervizora mora onemogućiti opciju u postavkama Hyper-V VM Omogući dinamički memory (ili povećajte minimalnu vrijednost rezervacije).

Ako koristite VMWare ESXi domaćin, možete koristiti postavke raspodjele resursa (Postavke resursa) Rezervirajte više memorije za ovaj uređaj ili odmah rezervirajte svu memoriju - Rezervirajte svu memoriju gostiju (Sve zaključano).