Ein Blog über Code, Hardware und Co

Kurz notiert

Weniger Swap auf einem ESXI-Host

Ich hatte vor einer Weile damit zu kämpfen, dass Backups von virtuellen Maschinen auf einem meiner ESXI-Hosts nicht mehr funktionierten.
Nach etwas Recherche stellte sich heraus, dass der Speicher auf dem Host schlicht zu gering für die Backupjobs gewesen ist. Und das lag am Swap.

ESXI reserviert SWAP in der Größe des (nicht reservierten) Arbeitsspeichers von virtuellen Maschinen

Eigentlich ist das eine tolle Sache, denn so ist Overcommitment und damit eine optimale Nutzung des physisch verfügbaren Arbeitsspeichers möglich.
Ein Beispiel: Wir haben einen ESCI-Host mit 32GB RAM und 3 virtuelle Windows-Maschinen, die auf diesem Host laufen. Jetzt können wir diesen 3 VMs jeweils 16GB zuweisen (also in Summe 48GB), obwohl physikalisch nur 32GB vorhanden sind.

Um das zu ermöglichen, reserviert ESXI für jede der VMS die 16GB virtuellen Arbeitsspeicher ebenfalls als SWAP, damit die VM in jedem Fall ausreichend Arbeitsspeicher zur Verfügung hat. Wenn nun also alle 3 Maschinen den Arbeitsspeicher auslasten

Diese SWAP-Files werden nun aber logischerweise ebenfalls auf dem Speicherplatz des Hosts angelegt und belegen diesen.

Lösung: So kannst du den SWAP-Speicher verringern

Wenn du jetzt aber weißt, dass du den RAM nicht overcommiten willst, und dass der SWAP-Speicher eigentlich nicht gebraucht wird, kannst du den Arbeitsspeicher für die jeweilige VM reservieren.

Es wird dann direkt der physisch vorhandene Arbeitsspeicher durchgereicht und vom ESXI-Host kein SWAP mehr angelegt. Der Arbeitsspeicher ist dann natürlich nicht mehr zwischen den VMs geshared und kann entsprechend nicht mehr overcommitted werden.

Bild: Gesamten Arbeitsspeicher reservieren.

Quellen:

https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.resmgmt.doc/GUID-AC40823A-695B-438A-A8F2-4B7C51A0D014.html