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.
Summary
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:
Inside Fusion
- 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
The Setup
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
CPU
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.
Memory
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!
Disk
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.
Step-by-Step
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
Step 2 – Modify the VM within Fusion
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)
Other articles on Fusion
Tags In
Related Posts
17 Comments
Leave a Reply Cancel reply
You must be logged in to post a comment.
Great write up on how to speed up vm.. i do have a question for you after editing the vmx file and placing scsi0:0.virtualSSD = “1” I get an error message. Would you be able to tell me why ?
Value ““1”” for variable “scsi0:0.virtualSSD” is not a valid tristate value.
use value default …
Have you tried adding the scsi0:0.virtualSSD = “1” without the quotes? (” “) so it looks like scsi0:0.virtualSSD = 1 that might help. Please let me know if that fixes it for you.
Which hardware version are you running with the VM and what operating system did you install in the VM?
Thank you for replying you were right taking out the quotes worked out …. I was loading server 2012 R2.. I will have to make changes to the other vm’s I have to see if they speed up.
Thanks once again for your help.
Hello
I’ve always worked slow with my fusion virtual machine, so I decided to follow the suggestion of this article
I’ve edited my vmx file, replaced the e1000e network with the vmxnet3, added the scsi0:0.virtualSSD = “1” line.
The virtual machine does not start back anymore and return an “internal error” message. If I clic to the setting button it even does not allow me to enter the setting and return te same error.
I reopened the vmx file and changed back the network to e1000e and deleted the scsi0:0.virtualSSD = “1” with no results, still internal error.
Anyone pls can help? I don’t want to create a new VM!!
Hi Corrado, have you tried following the guidelines and tips I describe in this post: https://vmguru.com/2017/02/how-to-correctly-modify-the-vmx-file-in-vmware-fusion-8-x/ ? (see step 7!)
It looks to me that you edited the .vmx file with a texteditor while smart quotes are checked. This messes up the start of the .vmx file. You can easily recover it by opening the .vmx file with the correct settings and save it again.
Hope this helps. Please let me know.
Hi Edwin!!! It worked!!! Tx so much!!
Hi Edwin,
Thank you ever so much for this. I was on the verge of having to buy a PC just to be able to run our invoicing software because VMware was so dreadfully slow. VMware worked great when I had Win XP but after upgrading to Win 7 it has become virtually unusable. Even though your tips were for Win 10 I have used them for Win 7 and they have made a noticeable difference to the performance.
Best wishes
Jamie
Hi Edwin, thanks for the post! I am new with Fusion and I actually just imported my bootcamp Win10 to VM today and deleted the bootcamp partition. The Win10 ran really slow so I decided to try out your approach. I followed every step but experienced the exact same error as @corradopalestini:disqus , same as him there was an “iinternal error” even after I change the network back to e1000e and delete the scsio:0.virtualSSD = 1. But I did make sure that my smart quote for TextEditor was unchecked before editing the vmx file.. What could have went wrong?
Appreciate your help!
I fixed this issue now and it worked :D I looked again at your other post (https://vmguru.com/2017/02/how-to-correctly-modify-the-vmx-file-in-vmware-fusion-8-x/) and did the trouble shoot and my quote around vmxnet3 was indeed slightly different from others! I guess it is caused by my input language not set to english (how silly).
I have done the tweaks and my Win10 is indeed faster! Thanks again for the (really clear and well structured) post :D
I had an issue even though I followed the same instructions. So, then I opened the file in vi to take a look, and found that the quote just before “vmxnet3″ had been changed to an open quote character: ( “ instead of ” ) so I fixed that in vi and then I was all set.
What version of Directx is running when VMWARE/Win10 is installed? I clicked and downloaded the link above for my fusion win10 install and it said the file only works on xp, and others (not 10). I ran the diagnostics and it says my version is 12. Is this now a moot point?
I have the same question. DirectX 9.0c does not support Windows 10. “Supported Operating System
Windows 2000, Windows 2000 Advanced Server, Windows 2000 Professional Edition , Windows 2000 Server, Windows 2000 Service Pack 2, Windows 2000 Service Pack 3, Windows 2000 Service Pack 4, Windows 98, Windows 98 Second Edition, Windows ME, Windows Server 2003, Windows XP, Windows XP Home Edition , Windows XP Media Center Edition, Windows XP Professional Edition, Windows XP Service Pack 1”
I was with vm ware since 4.0 and have found the best solution is to move to parallels. I’ve tried all the supposed fixes for vm ware being glacially slow but none are really any good. When I, out of desperation, downloaded a trial version of parallels and reinstalled everything the difference was 100 times faster. I even tried reinstalling vm ware and windows but parallels was so much quicker that there is no going back.
In step 5, when you write, “Make sure you put 2x the amount of RAM in initial”, by you mean twice the number listed at that setting when I open the page, or twice the amount of RAM I assigned in the creation of the virtual machine?
Great article, it really improved my vm.
Excellent article. Thanks for the tips.