Getting Good Performance with VMware Workstation Player

VMware Workstation Player has always been my favorite solution for desktop virtualization. It’s free, well-featured and easy to use. The main issue with it is the performance, especially the anomalously high disk utilization. Installing a guest system on a SSD is not always possible and affordable, and the excessive access may cause unwanted waste on the limited lifetime of the SSD.

Anyway, it accesses the disk frequently for reasons. Only a few years ago, many PCs were running with 512 MB of RAM. It was hard to allocate adequate memory for a guest system so there were many techniques developed to make the virtualization possible. Basically, they are the equivalences of virtual memory or SWAP.

However, things are much different now, where modern PCs are easily 8, 16 or even 32 GB of memory (the price is currently insane though LOL). I am using a laptop with 12 GB RAM, so allocating 4 GB of memory is usually sufficient for most of guest operating systems and at the same time should not create any significant negative impact to the host system. The following three tweaks should prevent the unnecessary disk access.

First, disable the virtual memory or swap in guest system. This is very optional because an operating system usually has highly optimized strategies of how to use virtual memory or swap. As long as you don’t open too may programs or pages, the systems will stick to physical memory. Disabling virtual memory restricts the flexibility. However, if you are very annoyed the noise of disks like me, you can turn it off.

Second, disable Memory Trimming. Memory Trimming is helpful when the overall RAM is low. It shrinks the guest RAM by storing inactive chunks of memory to the hard disk when the host needs more memory. In other words, it’s the host-managed virtual memory for a guest system. It can be disabled by adding the following line in the virtual machine configuration file (.vmx):

MemTrimRate= "0" 

Finally and most importantly, disable the virtual machine paging file (uuid.vmem). If you only want to use the guest system like a normal computer, and you have no need for crash recovering or creating snapshots (you don’t have snapshots in Player anyways), then there is no need to have a copy of the guest RAM in you disk. Disabling the file will make your life so much better. Just add the following line in the configuration file:

mainMem.useNamedFile = "false"

Now, your guest system only accesses your disk when it actually accesses its own disk. For any PC with sufficient RAM, the performance increase is very obvious.

References:
http://sanbarrow.com/vmx/vmx-advanced.html#mainmem
https://pubs.vmware.com/workstation-9/index.jsp?topic=%2Fcom.vmware.ws.using.doc%2FGUID-A968EF50-BA25-450A-9D1F-F8A9DEE640E7.html