VMware Performance Enhancing Tweaks (Over-the-Counter Solutions)

I have been using VMware virtualization for quite a few years now, and even though it is generally fast and reliable virtualization platform, it does require some extra tuning to improve its performance. Here is a brief collection of tweaks that I personally use on Windows and Mac OS to improve I/O performance of VMware virtual machines. These tweaks have become particularly useful in the past couple of years, with larger amounts of available RAM in computers and desire to reduce unnecessary write operations to SSD drives, such as memory swap files.

In order to apply these tweaks you need to add the following settings either to your virtual machine .VMX file, or if you like it globally then to VMware settings.ini file. Settings.ini file is located at “C:\ProgramData\VMware\VMware Workstation\” or “C:\Documents and Settings\All Users\VMware\VMware Workstation\” folders, depending on your operating system. VMware Fusion Config files are located in “/Users/username/Library/Preferences/VMware Fusion/preferences” and “/Users/username/Library/Preferences/VMware Fusion/config” folders.

Tweak: Disable memory swap files .vmem files

mainMem.useNamedFile = "FALSE"
Unfortunately this parameter does not work for VMware Player, as it always creates virtual machine’s full memory swap file.
For VMware Fusion on Mac and Linux instead of mainMem.useNamedFile you have to set mainMem.backing flag.
mainMem.backing = "swap"

Tweak: Choose the right disk controller and specify SSD

Instead of the latest SATA AHCI controller choose LSI Logic SAS controller with SCSI disk for Windows guest OS, or PVSCSI for other types of OS. Unfortunately SATA AHCI on VMware has the lowest performance out of the three controllers and highest CPU overhead (see the references on the topic at the end). In addition to choosing the right controller, if your host disk is SSD you can explicitly specify the disk type as SSD to guest OS.
scsi0:0.virtualSSD = 1

Tweak: Disable log files for VM

logging = "FALSE"
Alternatively you can specify a different location to store the log file, if you ever need them:
log.filename = "c:\Windows\Temp\vm1.log"

Tweak: Other Disk & Memory I/O Performance Optimization

Disable memory trimming:
MemTrimRate = "0"
Disable page sharing:
sched.mem.pshare.enable = "FALSE"
Disable scale down of memory allocation:
MemAllowAutoScaleDown = "FALSE"

Tweak: Disabling Snapshots

Disable snapshots if you are not using them and prefer full backups:
snapshot.disabled = "TRUE"

Tweak: Disable Unity Mode

Unity might be a great feature for running virtual desktops operating systems, but it is not the most useful for virtualizing server OS. An annoying sign of enabled unity is GuestAppsCache or caches folder with a large number of files and subfolders. In order to disable it for your VM add the following lines:
isolation.tools.unity.disable = "TRUE"
unity.allowCompositingInGuest = "FALSE"
unity.enableLaunchMenu = "FALSE"
unity.showBadges = "FALSE"
unity.showBorders = "FALSE"
unity.wasCapable = "FALSE"

References:

LinkedInBookmark/FavoritesShare

6 thoughts on “VMware Performance Enhancing Tweaks (Over-the-Counter Solutions)”

  1. You sir are awesome. Thanks so much for sharing, you have helped me out a great deal.

  2. Great post thank you!
    I’ve been looking to follow this guide, but in Mavericks the “/Users/username/Library/Preferences/VMware Fusion/preferences and /Users/username/Library/Preferences/VMware Fusion/config” folders no longer exist, and the ones that do contain Fusion, have no config file…is there an updated version of this tutorial?

  3. Thanks for the awesome post man.

    I used to be irritated with VMware WorkStation for it’s log files & .vmem files.
    I even started using VirtualBox for it’s simplicity.

    But started creating a VM back in VMware WorkStation.

    Thanks again………

Leave a Reply

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

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