A virtualizációs gazdagépeken futó vendég virtuális gépek adminisztrációjakor (legyen az VMWare ESXi vagy Hyper-V), a teljesítményproblémák elemzésekor gyakran olyan helyzetekbe kerülnek olyan helyzetek, amikor a rendelkezésre álló operációs rendszer memóriája sokkal kevesebb, mint az operációs rendszer látja (hozzárendelte). Például egy virtuális géphez 8 GB memória van hozzárendelve, a feladatkezelő 1 GB szabad memóriát mutat, miközben az összes futó folyamat összes memóriafelhasználása nem haladja meg a 3 GB-ot. Hol ment a fennmaradó 4 GB??
Általában ennek a viselkedésnek az oka a memória túlterheltség funkciójának használata a hipervizorban.
A memória túlterhelt (Nem ismerem a meghatározást oroszul, legyen memória túlterhelve) Ez a hipervizor jellemzője, amely lehetővé teszi, hogy több memóriát rendeljen el a virtuális gépekhez, mint amennyi a fizikai gazdagépen van, de anélkül, hogy garantálnánk, hogy egy adott időpontban az összes kért memória el lesz osztható. Általános szabály, hogy a túlkompozíció lehetővé teszi a virtuális gépek sűrűségének növelését a gazdagépen, mivel a memóriát az aktuális terheléstől függően dinamikusan osztják el közöttük (a ki nem töltött / alapjáratú virtuális gépek erőforrásait meg lehet osztani a több betöltött között)
A VMWare alkalmazásban az egyik mechanizmus a túlkötelezett memória megvalósításához Memória ballonálás (kihúzza a memóriát, vagy ha akar, akkor csalj). A Hyper-V esetében a funkció hasonló funkciót valósít meg Dinamikus memória.
megjegyzés. Mellesleg, mind a VMWare, mind a Hyper-V széles körben és elég hatékonyan használja a memória-tömörítést, hogy megtakarítsa a memóriát és megvalósítsa a túlkompatibilis technológiát..A VMWare programban a labda a meghajtón keresztül valósul meg vmmemctl.sys (amely a VMware Tools része), amely szükség esetén fizikai memóriát képes elfogni egy fiktív labdafolyamat felfújásával a memóriába (ballon). Így a foglalt memória hozzáférhetetlenné válik az alkalmazások számára, és a hipervizor újraeloszthatja a felszabadult memóriát más virtuális gépek között. A Hyper-V Dynamic memória illesztőprogramot használ dmvsc.sys integrációs szolgáltatások halmazából (Dynamic Memory VSC komponens). A túlkötési beállításokat a hipervizor adminisztrátor kezeli..
De hogyan lehet a virtuális gépen belül megállapítani, hogy valójában kevesebb fizikai memóriája van-e elérhető, mint amit az operációs rendszer lát?
Fontolja meg, hogyan lehet meghatározni a ballon meghajtó jelenlétét és méretét egy Windows vendég operációs rendszerben. Tehát elemezzük a következő helyzetet:
A vendég Windows Server 2012 R2-vel rendelkező virtuális gépek 8 GB RAM-ot osztottak ki. A feladatkezelő megmutatja, hogy a memória 93% -ban van felhasználva (7,4 GB memória van elfoglalva). Ha azonban összeadja azt a memóriamennyiséget, amelyet az összes futó folyamat felhasznál, akkor váratlan következtetésre juthat - ténylegesen csak 2,5 GB-ot használ. Hol ment 5 GB memória? Sem a Task Manager, sem az Resource Monitor nem ad választ erre a kérdésre..Ahhoz, hogy megértse, mi történik a memóriával, használnia kell a segédprogramot RamMap Mark Rusinovich (az előző esetek egyikében megmutattam, hogyan lehet ezt a segédprogramot használni a fájlrendszer gyorsítótárának problémájának diagnosztizálására). Töltse le a segédprogramot a Microsoft webhelyéről (https://technet.microsoft.com/en-us/library/ff700229.aspx) és futtassa rendszergazdai jogokkal. Ezután a lapon Használd a grófot látjuk, hogy a memória nagy részét (5,4 GB) az objektum használja A sofőr le van zárva.
Ez az a memória, amelyet a hipervizor „evett”, és a vendég operációs rendszer léggömb-illesztőprogramján keresztül terjesztette más virtuális gépekre. Ie nincs elegendő memória a hipervizor gazdagépén, vagy a hipervizor adminisztrátora erőszakkal "megölte" erőforrásokat ehhez a virtuális géphez.
A Hyper-V virtuális gépek jelenlegi memóriaelrendezését a Performance Monitor egyedi teljesítményszámlálói adhatják meg:
- Hyper-V dinamikus memória -> Vendég látható memória
- Hyper-V dinamikus memória -> Fizikai memória
Ennek a viselkedésnek a letiltásához a hipervizor adminisztrátorának le kell tiltania a Hyper-V virtuális gép beállításainál található opciót Dinamikus memória engedélyezésey (vagy növelje a minimális foglalási értéket).
Ha VMWare ESXi gazdagépet használ, akkor használhatja az erőforrás-allokációs beállításokat (Erőforrás-beállítások) további memóriát foglaljon le ehhez a géphez, vagy azonnal tárolja az összes memóriát - Az összes vendégmemória lefoglalása (Összes zárva).