How to Fix Slow Windows VMs on VMware Fusion 8.x
I am a long-time user of VMware Fusion, which enables me for example to run Microsoft Visio on my MacBook Air. I also use Windows VMs to test out new software for work, blogging and educational purposes. Still deeply hoping Microsoft will port Visio to Mac OS someday, but probably not going to happen, but hey you got to have dreams!
I have been using VMware Fusion from version 4 onwards and have been running version 7 for the last couple of years together with a Microsoft Windows 7 VM satisfactorily. I never experienced any major problems before, but after upgrading to VMware Fusion 8 my Windows 7 VM was suddenly painfully slow and extremely sluggish.
Upgrading to Windows 10 Pro on VMware Fusion Pro 8.x
I thought, maybe Windows 7 is not a good fit for it, and an upgrade was already in the planning so I decided to upgrade my VM to Microsoft Windows 10. Boy, was I wrong! The upgrade went through without any problems, but the VM was useless after rebooting. I ended up with Microsoft Windows 10 Pro VM with VMware Fusion 8.1.1 which took over 15+ minutes to only login. While being logged in any screen updates only caused a spinning wheel and a non-responsive Mac.
Next step was to upgrade VMware Fusion to version 8.5.x and restore the Windows 7 VM to test it again. Performance was a bit better but still not workable. I fired up a fresh VM and installed Windows 10 Pro from scratch. Results were still the same; slow Windows 10 VM on VMware Fusion 8.x
After tweaking around and testing several possibilities I found a solution that works great. So I am now running a Windows 10 Pro VM on VMware Fusion Pro 8.5.x that is fast and responsive.
The Windows 10 VM now starts in 20 seconds, where login will take approximately 10 seconds and Microsoft Visio can start and be used after 12 seconds. Closing down the VM takes about 26 seconds. The VMware SVGA driver with 3D support does some strange things and slows down refreshes of the screen if you enable it from the beginning during install. After tweaking the VM, my MacBook and Windows 10 I could enable 3D support again and go to hardware version 12 but looks like this was resolved due to installing DirectX9.0c runtime. So must be something being used by the VMware SVGA driver that is included in that specific runtime.
To create that fast and responsive Windows 10 VM, the following tweaks have been done:
- Change of Network adapter
- Adding SSD line to .vmx
- Reclaim disk space
In the VM
- Adjusting the Pagefile
- Disabling unnecessary services
- Disabling startup programs
- Uninstalling extra pre-installed software
- Installing DirectX 9.0c Runtime
- Disabling Windows Search
- Remove Live Tiles
- Cleanup your disk
On your MacBook
- Adjusting the Antivirus
- Excluding VMs from Time Machine Backup
I am running on a MacBook Air with:
- Intel Core i7 Dual Core 1.7GHz Processor
- 8 GB Memory
- Intel Graphics 5000 card with 1536MB memory
- 250 GB SSD
- OS X El Capitan Version 10.11.6
Note: I haven’t upgraded my Mac OS version due to some software I run to have NTFS on Mac.
The VM uses hardware version 12 and also has all 3D options activated. I run with a VM with the following specifications:
- Windows 10 Pro x64
- 2 Processor cores
- 2048MB Memory
- 60GB Disk, split into multiple files, SCSI bus type (It uses 16.7GB atm)
- Hardware Version 12, with full 3D support enabled
While troubleshooting the slow performance, I found that the sweet spot for the number of processor cores is two on my Mac. With one CPU core, it gets hammered big time and the fan is doing overtime while running with two it load-balances the workloads nicely. Also startup of the VM is faster.
I found that running with 2GB of RAM works the best. I tried all sorts of memory setups with increments of 256MB. While adding more than 2GB it runs other applications on the Mac Book into trouble so I saw some strange behaviour and complete hangs. Especially when I run with Skype and Microsoft Outlook for Mac. Running with less memory will increase the load on the disk significantly. But this could be an option if you have only 4GB memory in your Mac but also a fast SSD!
When the disk is created it depends on the bus type that you select how fast it is. Make sure you select the bus type SCSI to have the fastest possible driver (LSISAS1068 driver). It is hidden under Advanced options in the Disk configuration of the VM.
I created a fast working Windows 10 Pro VM on VMware Fusion Pro 8.5.x. containing Microsoft Outlook 2016, VPN and Microsoft Visio 2016 with the following steps:
Step 1 – Create a fresh new VM in Fusion
Open Fusion > Virtual Machine Library > Add > Create a custom virtual machine > Continue > Select Microsoft Windows 10 x64 > Create a new virtual disk > Continue > Finish Or use Customize Settings to choose preferred location of the VM
Select the newly created VM in Fusion Virtual Machine Library and go to Settings. Open Processors & Memory > Select 2 Processors and 2048MB Memory. Use the Show All button to return to the settings menu.
Go to Compatibility > Advanced Options > Use Hardware Version and Select version 11 > Apply. For installation we use hardware version 11 because the VM will be much more responsive during installation and configuration. We will modify it to version 12 later on after installation and tweaking have finished.
Open Display and de-select Accelerate 3D Graphics for now. If you do not disable this feature the VM will be sluggish and hard to configure.
Step 3 – Install Microsoft Windows 10
You can now connect that Windows 10 ISO file and boot up the VM. Run through the setup process till it is fully finished. Make sure you install the VMware Tools now if they aren’t installed yet. You can check if there is VM icon in the right hand cornered tray. Also through the Fusion Menu > Virtual Machine > Install VMware Tools you can see if it has installed. It will show reinstall VMware Tools if it has and Install VMware Tools if it has not.
Step 4 – Tweaking inside Fusion
Standard in Fusion an E1000E network adapter will be added and installed to the VM as default network adapter. This will be visible in Windows as an Intel 82574L Gigabit Network Interface Card. It is an updated enhanced version of the E1000 network card. Shutdown the VM. And edit the .vmx file. For editing the .vmx file please see How to correctly modify the .vmx file in VMware Fusion 8.x and edit the following line:
ethernet0.virtualDev = “e1000e” to reflect ethernet0.virtualDev = “vmxnet3” this will activate the vmxnet3 driver with advanced options when you open the network adapter.
We will stay in the .vmx file and will add the following line to it scsi0:0.virtualSSD = 1 this will speed up the disk access times even more. After making these changes in the .vmx file, save the .vmx file and close down Fusion. Start Fusion and boot up the VM.
Step 5 – Tweaking in the VM
Inside the Windows 10 VM there are several options and tweaks to be made to speed up the operating system a lot.
Adjusting the pagefile
We will start with adjusting the pagefile to reflect the amount of memory the VM got when created. Right Click the Windows Start button and select System > Advanced system settings > Advanced tab > Settings under Performance > Advanced tab > Change button > un-tick the Automatically manage paging file size for all drives box > Select Custom Size > Make sure you put 2x the amount of RAM in initial and Maximum size > Press the Set button > Restart the VM.
Disabling unnecessary services
Go to search box or magnify glass in the lower left corner and search for System Configuration. Go to the Services tab > Tick the check box Hide all Microsoft services > Now run through the list and disable the services you do not need.
Disabling startup programs
You can disable all programs that you do not want to start at start-up. Go to the taskbar and press the right mouse button > now select the Taskmanager > go to the Start-up tab and disable all programs that are needed at start-up.
Uninstalling extra pre-installed software
Go to search (Magnify glass) in the left bottom corner and type Apps & features > Press Enter > Find the pre-installed software you do not want to use. Press the application > Uninstall > Done. I uninstalled the following applications: Sky Preview, Facebook, Twitter, OneDrive, 3D Builder, Solitaire Collection
Installing DirectX 9.0c Runtime
The SVGA driver from VMware which is being installed during the VMware Tools install is relying behind the scenes on DirectX 9.0 parts for the 3D rendering bits. You can download the DirectX 9.0c End User runtime from Microsoft here. If you want to know more about how to install the latest DirectX version and to troubleshoot issues check this Microsoft page. Make sure you un-tick the Install Bing Bar in the DirectX installer!!!
Disabling Windows Search
You can disable indexing completely by turning off the Windows Search service if you do not use the Search service. This will stop the indexing of all files. You can still use search but it just takes longer since it will search through the files real-time. If you use other applications that rely on the search service, those will be of course also be slower with searching. Click the search windows button (magnifying glass) and type in services. Click the result to open the Services application. Scroll down to the Windows Search service and double click it. Press Stop to stop the service. Now change the Startup type from Automatic to Disabled.
Removing Live Tiles
You can remove the live tiles from the start menu so network bandwidth and performance is gained back. Open the Start menu and then right click on one of the live tiles. A menu option appears. You can choose to turn it into a static tile or do what I did by choosing Unpin from Start to remove it completely. I did this for all tiles. After the last tile has been ditched you can shrink the Start menu to move it more to the left.
Cleanup your disk
After finishing installing and uninstalling software at the end, make sure you run Disk Cleanup. You can remove unwanted files and deleted items easily. This way you speed up Windows 10 even a bit more.
Step 6 – Tweaking on your MacBook
You can also tweak some settings on your MacBook to make sure the VMs run at maximum speed.
Adjusting the Antivirus
When running anti-virus software on your MacBook make sure you exclude the directories/files with .vmwarevm bundles in it.
Excluding VMs from Time Machine Backup
When a Time Machine backup is running, the extra disk activity decreases the performance of your virtual machine. VMware recommends you to exclude virtual machines from being backed up with Time Machine and instead make a manual backup. For more information, see Excluding the Virtual Machines folder from being backed up by Time Machine (1014046).
Step 7 – Wrap-up
Now that we have done a lot of tweaking, it is time to shutdown the VM and change the settings for the VM to start using Hardware version 12 and to enable 3D support for the VM. After booting up the VM make sure to reboot it and start it again. If it works as expected shutdown the VM and click on the VM disk in the Virtual Machine Library from Fusion to reclaim disk space. (Yellow Reclaimable link)