VMware Communities
ISDPCMAN2
Contributor
Contributor
Jump to solution

Poor VM performance on Core i9 CPU 12th gen

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?

Labels (2)
Reply
0 Kudos
1 Solution

Accepted Solutions
Technogeezer
Immortal
Immortal
Jump to solution

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:

  • Make sure anything virtualization or Hyper-V related is uninstalled in Windows (check in Add/Remove Windows Features).
  • Disable Memory Integrity/VBS settings by opening Windows Settings and navigate to 
    Windows Security -> Device Security -> Core Isolation then turn off the "Memory Integrity" slider
  • Disable any Hyper-V activity by opening a command prompt as administrator and issuing the following: 
    bcdedit /set hypervisorlaunchtype off

Note that this precludes the use of WSL2 as WSL2 needs Hyper-V components.

- Paul (Technogeezer)
Editor of the Unofficial Fusion Companion Guides

View solution in original post

7 Replies
Technogeezer
Immortal
Immortal
Jump to solution

Search the forum. There are numerous posts about this subject and how to improve performance. 

- Paul (Technogeezer)
Editor of the Unofficial Fusion Companion Guides
Reply
0 Kudos
ISDPCMAN2
Contributor
Contributor
Jump to solution

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.

Tags (1)
Reply
0 Kudos
Technogeezer
Immortal
Immortal
Jump to solution

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:

  • Make sure anything virtualization or Hyper-V related is uninstalled in Windows (check in Add/Remove Windows Features).
  • Disable Memory Integrity/VBS settings by opening Windows Settings and navigate to 
    Windows Security -> Device Security -> Core Isolation then turn off the "Memory Integrity" slider
  • Disable any Hyper-V activity by opening a command prompt as administrator and issuing the following: 
    bcdedit /set hypervisorlaunchtype off

Note that this precludes the use of WSL2 as WSL2 needs Hyper-V components.

- Paul (Technogeezer)
Editor of the Unofficial Fusion Companion Guides
ISDPCMAN2
Contributor
Contributor
Jump to solution

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!

Reply
0 Kudos
Technogeezer
Immortal
Immortal
Jump to solution


@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.

- Paul (Technogeezer)
Editor of the Unofficial Fusion Companion Guides
Reply
0 Kudos
ISDPCMAN2
Contributor
Contributor
Jump to solution

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.

Reply
0 Kudos
Technogeezer
Immortal
Immortal
Jump to solution

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. 

- Paul (Technogeezer)
Editor of the Unofficial Fusion Companion Guides
Reply
0 Kudos