Category Archives: hardware

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"
Memory allocation configuration:
prefvmx.useRecommendedLockedMemSize = "TRUE"
prefvmx.minVmMemPct = "100" (optional)

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"

Tweak: MacBook Retina Display Optimization

Disable automatic fitting to window:
pref.autoFitGuestToWindow = "FALSE"
Set a different resolution (or in user interface select VM – Settings – Display – uncheck ‘Use full resolution for Retina display’):
gui.applyHostDisplayScalingToGuest = "FALSE"
When in full-screen mode, there is a couple of options to control how guest is rendered:
pref.autoFitFullScreen = "stretchGuestToHost" or pref.autoFitFullScreen = "fitHostToGuest"

References:

Deleting GTP and EFI Partitions on Windows 7/Server 2008/Vista

If you are trying to delete GTP or EFI partition on your hard drive under Windows Server 2008/7/Vista using management console are you out of luck. However, here is the easiest way to get around it:

Start command prompt and run diskpart.exe in command prompt issuing these commands as per illustration below:
d:\path>diskpart.exe
DISKPART> list disk
DISKPART> select disk x
DISKPART> clean

Please note, the reason for using ‘clean’ command instead of ‘delete volume’ is that ‘delete volume’ crashes diskpart utility when attempting to delete GTP/EFI partitions. Also outdated diskpar.exe utilitiy, which is frequently used for aligning physical partitions and is still quite popular for SSD optimization, cannot even read disk layout containing GTP or EFI partitions.



Great post: How to Delete GPT Partition or EFI from Mac Hard Disks In Vista or XP
Reference: A Description of the Diskpart Command-Line Utility
Diskpar & Diskpart in server environment: Disk Partitioning Offset
Disk partitioning Alignment: Disk Partition Alignment Best Practices for SQL Server
SSD Optimization guide: OCZ Technology Forum