Disable Virtual Machine Swap File (.vswp)

For each powered-on virtual machine, a .vswp file is placed in the virtual machines directory on the datastore. This file is required by VMkernel to swap virtual machine memory to the disk in case of excessive overprovisioning. The swap file size can be calculated with the formula (.vswp File = Allocated Memory - Memory Reservation). As per default, the reservation is set to 0, so the .vswp file size is equal to the amount of virtual memory.

Virtual Machine with no Memory Reservation
esxi-no-memory-reservation
esxi-vswp-file-no-reservation

Having the whole amount of memory from all virtual machines occupying the datastore wastes a lot of capacity. To get rid of the .vswp space, you have to reserve parts or all guest memory. If your virtual machine has 16GB and you reserve 50%, your .vswp file is only 8GB. If you reserve 100%, the file is still there but with a size of 0 bytes. The file will never disappear completely.

Please note that the swap file can only grow while the virtual machine is running. If you want to shrink the file (by increasing memory reservation) you have to power cycle the virtual machine.

Virtual Machine with full Memory Reservation - Reserve all guest memory (All locked)
esxi-full-memory-reservation

esxi-vswp-file-full-reservation

Since vSphere 5.0, there is also a second vmx .vswp file whose size is about 50-150MB. This is the swap file for overhead memory reserved for the VMX process. You cannot remove that file.esxi-vmx-vswp-file

 

  1. I think it's important to talk about the implications at a cluster level of implementing memory reservations.

    Admission control takes into consideration memory reservations and can decrease your consolidation ratios. It also limits TPS and memory reclamation, again diminishing your consolidation.

    While what you say is correct in regards to reducing/removing the .vswp file, people need to understand that memory reservations can have adverse effects in other areas. As always, it's a game of trade-offs.

  2. You could remove vmx*.vswp: configure advanced VM setting
    sched.swap.vmxSwapEnabled=false.

    See http://www.vmgu.ru/search/swap%7C1 for more information.

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>