In mijn vorige artikel besprak ik de interessante mogelijkheid van ESX om geheugenpages te delen en op die manier tussen virtuele machines veel geheugen te sparen. Er zijn echter nog meer opties binnen VMware om geheugen te sparen, waaronder het bekende swapping. Ook bekijken we de gloednieuwe memoryfeature in ESX 4.1 genaamd Memory Compression.   Ballooning: […]

Advertentie

In mijn vorige artikel besprak ik de interessante mogelijkheid van ESX om geheugenpages te delen en op die manier tussen virtuele machines veel geheugen te sparen. Er zijn echter nog meer opties binnen VMware om geheugen te sparen, waaronder het bekende swapping. Ook bekijken we de gloednieuwe memoryfeature in ESX 4.1 genaamd Memory Compression.

 

Ballooning: opblaasbare driver
De techniek voor geheugenbeheer die ik eerst bespreek is ballooning. Die term is niet toevallig gekozen.

Ballooning werkt alleen als de VMware Guest Tools geïnstalleerd zijn. Samen met deze tools wordt een VMware memorydriver (vmmemctl) geïnstalleerd in het besturingssysteem. Als een andere virtuele machine (VM) geheugen nodig heeft en er geen meer vrij is, dan zal deze driver zichzelf opblazen als een ballon.

De driver start een proces dat een bepaalde hoeveelheid (inactief) geheugen opslorpt. Dit geheugen wordt daarna door de hypervisor teruggeclaimd om voor andere doeleinden te dienen. Dit gebeurt voornamelijk op virtuele machines die niets om handen hebben op dat ogenblik.

Samen met alle volgende features zal de ballon enkel in actie treden als al het geheugen in gebruik is en er meer wordt gevraagd (= memorycontention).

Swapping
Deze techniek wordt eigenlijk door ieder besturingssysteem toegepast. Of dit nu een virtueel, native of een besturingssysteem in de hypervisor is. Het is de techniek om een stuk van de harde schijf te reserveren als extra geheugen. Als het geheugen dan vol raakt, wordt het minst actieve geheugen verplaatst naar de harde schijf.

Dit is natuurlijk een ultieme noodgreep, want een schijf is tot een miljoen keer trager dan geheugen.

De ESX Hypervisor is de enige hypervisor die ook zelf aan swapping doet, maar hij verkiest (dankzij het gebruik van de balloondriver) swapping binnen het Guest OS. Het Guest OS weet namelijk zelf het best van al welk geheugen het moet swappen; als de hypervisor moet swappen kiest hij hiervoor willekeurige pages.

ESX Hypervisor swapping is dan pas ook het allerlaatste wat zal gebeuren, als alle andere opties opgebruikt zijn.

ESX4.1: Memory Compression
Memory Compression zal pas starten indien ballooning en TPS uitgeput zijn, maar wel nog voor het swappen naar schijf. In principe komt het neer op het comprimeren van de geheugenpagina’s en deze dan op te slaan in het compressiecache van de virtuele machine.

Het ophalen en decomprimeren van deze pagina’s is beduidend sneller dan het ophalen van volledig geswapt geheugen.

Als we de vier technieken in volgorde van voorkomen plaatsen, dan zou de hiërarchie er zo uitzien: 

  • Transparant Page Sharing: werkt continu.
  • Ballooning: vereist installatie van VMware-tools en werkt enkel indien er nood aan geheugen is.
  • Memory Compression: werkt enkel als er swapping vereist is.
  • Disk Swapping.

We hoeven er niks voor te doen om deze aan te schakelen, ze werken allemaal automatisch.

In het volgende artikel bekijken we de nieuwste feature in Hyper-V R2 SP1: Dynamic Memory.


Geen velden gevonden.