Skip to content

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

 

3 thoughts on “Disable Virtual Machine Swap File (.vswp)”

  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. I like to provision a separate thin provisioned datastore and keep swap files on it instead of with the VM. This way, vm datastore capacity is not negatively impacted by many vswp files. And since they are lazy zero, a thin provisioned lun hosting vswp files does not actually use any space on the array.

Leave a Reply to Andrey Cancel reply

Your email address will not be published. Required fields are marked *