Destul de des, când vine vorba de schimbarea unei mașini virtuale, mulți înțeleg fișierul swap Windows sau partiția SWAP Linux, dar aceste concepte merită partajate.
Pentru a înțelege problema, vă sugerăm să reamintiți principiile de lucru cu memoria în VMware ESXi.
Disclaimer: Acest text conține informații despre principiile de bază care sunt destinate începătorilor în acest subiect. Multe detalii nu sunt menționate intenționat pentru a simplifica materialul.
Când se creează o mașină virtuală, îi este alocată o anumită cantitate de Virtual RAM, care va vedea sistemul de invitați în interiorul mașinii virtuale (de exemplu, 4 GO). Această valoare se numește vRAM configurabil.
În ciuda faptului că OS-ul gazdă vede 4 GB de memorie, nu este neapărat această memorie este 100% dedicată memoriei fizice, care este disponibilă în orice moment mașinii virtuale. Astfel, pe o gazdă fizică ESXi, cu o capacitate de memorie de 16 GB, putem crea și executa chiar și 10 mașini virtuale de 4 GB sau chiar 8 GB de memorie RAM.
Aceasta se bazează pe presupunerea că toate mașinile virtuale nu vor să utilizeze toate cele 100% din memoria lor la un moment dat și pot partaja memoria neutilizată în timp ce rulează.
În același timp, fiecare mașină virtuală alocă memoria în blocuri mici, după cum este necesar, și se eliberează atunci când este inutil (dacă există astfel de mecanisme în sistemul de operare). Cu toate acestea, în cazul în care la un moment dat, consumul total al memoriei tuturor mașinilor virtuale de pe gazdă depășește memoria fizică disponibilă de 16 GB, iar unele dintre mașinile virtuale va necesita cateva mai multe blocuri în termen de 4 GB lor configurate legal, hypervisor văzut aceste câteva blocuri din swap pe disc.
Pentru aceasta, fișierul .vswp al mașinii virtuale pe care l-am menționat aici este destinat.
Mărimea fișierului este egală cu cantitatea de memorie a mașinii virtuale nealocate (în mod implicit, toată memoria nu este rezervată) și este creată atunci când VM este activată.
În principiu, până acum totul pare foarte asemănător schimbului obișnuit, însă există un moment foarte insidios.
Luați, de exemplu, fișierul de paginare Windows: Windows pune cele mai puțin solicitate blocuri de memorie acolo și încearcă să le "obțină" de acolo, în caz de nevoie. Astfel, utilizarea fișierului de paginare Windows este destul de normală, ceea ce nu are un impact critic asupra performanței.
În contrast decât Windows, hypervisor nu are nici un indiciu ce blocuri de memorie sunt critice pentru mașina virtuală, și care nu este foarte popular și locuri de tot. Ironia este că, de cele mai multe ori, acestea sunt cele mai populare blocuri.
În această situație, sistemul de operare crede că comunică cu blocuri în memoria RAM și așteaptă un răspuns rapid, dar, de fapt, aceste blocuri sunt citite și scrise pe un disc de câteva zeci (de sute de ori) inferior în viteză. În practică, mașina virtuală începe "stupidly stupid".
Această situație este comparabilă cu un accident de mașină virtuală, astfel încât recomandarea generală - nu permit folosirea fișierelor .vswp prin minimizarea Memory-overcommitment și pentru mașini virtuale critice utilizare de rezervare de memorie.
Sper că este disponibil și util;)