Search This Blog

Monday, August 31, 2026

VMware Performance Enhancing Tweaks

While VMware Workstation and VMware Fusion provide robust virtualization out of the box, default configurations often incur unnecessary host I/O and CPU overhead. If your host machine has ample RAM and fast NVMe/SSD storage, fine-tuning memory backing, disk controllers, and display scaling can significantly enhance VM responsiveness while reducing wear on your host drive.


Where to Apply These Settings

You can apply these parameters per VM or globally across your hypervisor installation:

  • Per-VM: Append directly to the virtual machine's .vmx configuration file (ensure the VM is completely powered off first).
  • Globally on Windows (VMware Workstation): Add to settings.ini located at:
    C:\ProgramData\VMware\VMware Workstation\settings.ini
  • Globally on macOS (VMware Fusion): Add to the preferences files located at:
    ~/Library/Preferences/VMware Fusion/preferences
    ~/Library/Preferences/VMware Fusion/config

1. Eliminate Host Memory Swap Files (.vmem)

By default, VMware maps VM RAM to a .vmem backing file on the host drive, generating continuous disk writes. If you have sufficient physical RAM to keep the VM fully in memory, disable named backing files:

Windows (VMware Workstation):

mainMem.useNamedFile = "FALSE"

(Note: VMware Player does not honor this flag and forces swap creation.)

macOS / Linux (VMware Fusion):

mainMem.backing = "swap"

2. Optimize Disk Controllers & Enable Virtual SSD Flag

Avoid SATA AHCI controllers in VMware when possible—they impose higher CPU latency and lower throughput than SCSI variants:

  • Use LSI Logic SAS (SCSI) for Windows guests.
  • Use VMware Paravirtual SCSI (PVSCSI) for modern Linux and heavy I/O workloads.

If your host storage is solid-state, explicitly inform the guest OS so it optimizes its I/O scheduler and enables TRIM:

scsi0:0.virtualSSD = 1

3. Memory Trimming & Page Sharing Tweaks

Prevent background memory reclaim mechanisms and page-sharing overhead from interrupting disk and CPU cycles:

# Disable memory trimming back to host
MemTrimRate = "0"

# Disable redundant memory page sharing
sched.mem.pshare.enable = "FALSE"

# Prevent automatic memory scale-down
MemAllowAutoScaleDown = "FALSE"

4. Disable Logging & Snapshots

For stable production or benchmark environments, disabling continuous debug logging and unwanted snapshot overhead preserves write cycles:

# Disable VM debug logs (or redirect via log.filename = "...")
logging = "FALSE"

# Disable snapshots completely (if using full standalone backups)
snapshot.disabled = "TRUE"

5. Strip Unity Mode Overhead (Server VMs)

Unity Mode creates large GuestAppsCache folders and incurs background compositing overhead that is unnecessary on headless or server VMs. Fully disable Unity with the following block:

isolation.tools.unity.disable = "TRUE"
unity.allowCompositingInGuest = "FALSE"
unity.enableLaunchMenu = "FALSE"
unity.showBadges = "FALSE"
unity.showBorders = "FALSE"
unity.wasCapable = "FALSE"

6. Retina & High-DPI Display Optimization (macOS)

Rendering guest OS interfaces at native High-DPI Retina resolutions can heavily burden the host GPU. To standardize scaling and full-screen behavior:

# Disable automatic guest window auto-fit
pref.autoFitGuestToWindow = "FALSE"

# Disable host display scaling passthrough
gui.applyHostDisplayScalingToGuest = "FALSE"

# Choose fullscreen scaling mode: "stretchGuestToHost" or "fitHostToGuest"
pref.autoFitFullScreen = "fitHostToGuest"

No comments:

Post a Comment