I moved off of VirtualBox and onto VMWare Workstation 17 because I upgraded my computer to an Intel Core i9 CPU (from an i5). My new system has Windows 11 Pro, Core i9 CPU (12900K, 16 cores), 64 GB RAM, 2 x 1T SSDs and an nVidia 4 port graphics card.
VMware will run the Windows 10 Pro VM's OK but I get terrible lag on them. The VM's will just freeze for 3s-4s then run OK, then freeze again. There is no pattern to the delays that I can tell.
I am NEW to VMWare so I don't know how to tweak these VM's to run reasonably fast and could use some help. I have tried changing VCPUs and RAM but that doesn't make any noticeable difference.
Can someone share techniques in getting the VMs to run quickly, please?
There are no settings in the VM that will help you with this. The workarounds are all Windows OS tweaks due to the interaction of Workstation, Hyper-V, and 12th gen Core CPUs. (and it's not clear really who's to blame, so don't automatically blame VMware. I believe Microsoft shoulders some of the blame here as well).
Try the following first:
Open a command prompt on Windows as administrator, and run the following command to disable power throttling on a VM (for some reason, Windows wants to run VM virtual CPUs on E-Cores, not P-Cores)
powercfg /powerthrottling disable /path "C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe"
If that doesn't work, you'll need to disable Windows' use of Hyper-V technology entirely in order to force the use of the VMware hypervisor and not Hyper-V:
Note that this precludes the use of WSL2 as WSL2 needs Hyper-V components.
Search the forum. There are numerous posts about this subject and how to improve performance.
I did search. Other than finding some reply in Chinese there was little more than discussions about it.
Does anyone have any real help with this? I have looked at all the settings for the VM and can't seem to find anything that works.
There are no settings in the VM that will help you with this. The workarounds are all Windows OS tweaks due to the interaction of Workstation, Hyper-V, and 12th gen Core CPUs. (and it's not clear really who's to blame, so don't automatically blame VMware. I believe Microsoft shoulders some of the blame here as well).
Try the following first:
Open a command prompt on Windows as administrator, and run the following command to disable power throttling on a VM (for some reason, Windows wants to run VM virtual CPUs on E-Cores, not P-Cores)
powercfg /powerthrottling disable /path "C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe"
If that doesn't work, you'll need to disable Windows' use of Hyper-V technology entirely in order to force the use of the VMware hypervisor and not Hyper-V:
Note that this precludes the use of WSL2 as WSL2 needs Hyper-V components.
Thank you! This helped. Hyper-V is not installed on my Windows 11 Pro machine (I checked features and it's unchecked).
The correct path for MY VMWare Player installation (ver. 17) is in this line:
powercfg /powerthrottling disable /path "C:\Program Files (x86)\VMware\VMware Player\x64\vmware-vmx.exe"
I got errors when I tried to copy/paste your command line, then I did some searching and found that in version 17, they got rid of "VMWare Workstation" and replaced it with "VMWare Player". Other than that, it helped (and disabling the memory integrity check.
It's still not FAST (I have allocated 8GB RAM and 4 VCPU's). But the important part is, I'm not seeing that lag I was seeing before.
Thanks again!
@ISDPCMAN2 wrote:Hyper-V is not installed on my Windows 11 Pro machine (I checked features and it's unchecked).
Just because Hyper-V features are not installed does not mean that Windows is not using it. For example, Memory Integrity settings and Virtualization Based Security use Hyper-V functions in their work, and do not require that you install the Hyper-V feature.
If you look in the vmware.log file that's being generated in the folder that contains all of the files in the VM, look for a line that starts with Monitor mode. If that's set to ULM, Workstation is still using Hyper-V.
You may wish to take the next step and completely disable anything using Hyper-V such as Memory Integrity and then issue that bcdedit command to excise Hyper-V from your Windows. If you then start the VM, check the vmware.log file once again and you should see that the monitor mode is set to CPL0 - indicating that the VMware hypervisor is running your VM, not Hyper-V.
I check the VMWARE.LOG file and the Monitor setting is still ULM (even after disabling the memory and running the bcdedit command from an elevated command prompt).
The lag is less noticeable but still there are lags for 2 seconds about a minute apart as we run the VM. This is frustrating. But I appreciate your help.
If it's still showing ULM, then you haven't completely disabled all Windows components that use Hyper-V technology. Make sure you have Device Guard/Virtualization Based Security disabled in addition to what you've done.