Hello there.
I recently installed Windows 11 on VMware, but I'm getting extremely poor CPU performance, the CPU usage is around 60-70% usually, and if I run any applications it gets to 100%.
I looked online for different solutions, I tried Defragmenting the disk, using preallocated rather than dynamic, using an SSD rather than a HDD. But these only made the VM slightly smoother and the CPU usage stayed the same.
I made a new VM in Virtualbox and used VMware's VMDK file, and the VM ran smoothly with 2 cores and 4GB of RAM
I gave the VM 4 cores and 8GB of RAM
I'm running VMware workstation PRO 16 on Manjaro Linux.
CPU: Intel Core i7-7500U
RAM: 20GB
Content of VMX file:
Detailed system info:
Thanks in advance.
If the Manjaro host has kcompactd running have a look at this thread
https://communities.vmware.com/t5/VMware-Workstation-Pro/VMWare-workstation-in-a-fistfight-with-Linu...
Otherwise, regarding the Windows 11 VM, the vmx configuration text you pasted does not appear to have virtual TPM for the Windows 11 VM.
Starting with version 14.x, you can add a virtual TPM device to a VM, but the requirement is that VM has to be encrypted; and as a result the vmx configuration file and virtual disk of the VM will also be encrypted. For encrypted virtual disk, you should use preallocated because the virtual disk cannot be shrunk once it is encrypted (i.e. writing zeroes from within the VM will result in non-zero values). After you encrypt the VM, add the virtual TPM using the "Add hardware wizard".
With 16.2.x and newer, there is an experimental way to add a virtual TPM without encrypting the vmx configuration file and virtual disks (at least not entirely). Since it is experimental there are issues (such as difficult to remove, cannot use in another host, etc). To use the experimental method for vTPM, shut down the VM add the following line to the vmx configuration
managedVM.autoAddvTPM = "software"
Close the VMware Workstation UI and open again after adding the vmx line and the virtual TPM will be added automatically.
I haven't tried the experimental method on Linux host but tried it on a Windows 11 host.
These lines are not necessary in the vmx configuration file unless you really need them to use the Windows 11 VM. The comments below each line is the equivalent GUI name and the scenario that requires these settings to be enabled.
vvtd.enable = "TRUE"
# Virtualize IOMMU (IO memory management unit in Processors
# You want to run VBS inside Windows 11 VM
vhv.enable = "TRUE"
# Virtualize Intel VT-x/EPT or AMD-V/RVI
# You want to run Hyper-V or WSL2 inside the VM or run another VM inside this VM.
vpmc.enable = "TRUE"
# Virtualize CPU performance counters
# You have some software that require virtualised counters to make accurate measurement of performance of software running inside the VM.
Spoilers are great for dumping loads of text into, making the thread easier to scroll, to add a spoiler click the icon on the toolbar of a triangle with an exclamation mark inside it.
See the difference:
#!/usr/bin/vmware
.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "19"
pciBridge0.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
vmci0.present = "TRUE"
hpet0.present = "TRUE"
nvram = "Windows 11.nvram"
virtualHW.productCompatibility = "hosted"
powerType.powerOff = "soft"
powerType.powerOn = "soft"
powerType.suspend = "soft"
powerType.reset = "soft"
displayName = "Windows 11"
usb.vbluetooth.startConnected = "TRUE"
firmware = "efi"
sensor.location = "pass-through"
guestOS = "windows9-64"
tools.syncTime = "FALSE"
sound.autoDetect = "TRUE"
sound.virtualDev = "hdaudio"
sound.fileName = "-1"
sound.present = "TRUE"
numvcpus = "4"
cpuid.coresPerSocket = "2"
memsize = "8192"
mem.hotadd = "TRUE"
sata0.present = "TRUE"
nvme0.present = "TRUE"
nvme0:0.fileName = "DISK.vmdk"
sata0:1.deviceType = "cdrom-image"
sata0:1.fileName = "/run/media/myms/ventoy/Windows(11).iso"
sata0:1.present = "TRUE"
usb.present = "TRUE"
ehci.present = "TRUE"
usb_xhci.present = "TRUE"
svga.graphicsMemoryKB = "4194304"
ethernet0.connectionType = "nat"
ethernet0.addressType = "generated"
ethernet0.virtualDev = "e1000e"
serial0.fileType = "thinprint"
serial0.fileName = "thinprint"
ethernet0.present = "TRUE"
serial0.present = "TRUE"
extendedConfigFile = "Windows 11.vmxf"
floppy0.present = "FALSE"
numa.autosize.cookie = "40022"
numa.autosize.vcpu.maxPerVirtualNode = "4"
uuid.bios = "56 4d 56 98 f1 1d a6 96-39 b3 06 97 9d 9b 9e 8c"
uuid.location = "56 4d 56 98 f1 1d a6 96-39 b3 06 97 9d 9b 9e 8c"
vm.genid = "2574486509314956863"
vm.genidX = "7458366503585389019"
nvme0:0.redo = ""
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
usb.pciSlotNumber = "32"
ethernet0.pciSlotNumber = "160"
sound.pciSlotNumber = "33"
ehci.pciSlotNumber = "34"
usb_xhci.pciSlotNumber = "192"
sata0.pciSlotNumber = "35"
nvme0.pciSlotNumber = "224"
svga.vramSize = "268435456"
vmotion.checkpointFBSize = "4194304"
vmotion.checkpointSVGAPrimarySize = "268435456"
vmotion.svga.mobMaxSize = "268435456"
vmotion.svga.graphicsMemoryKB = "262144"
vmotion.svga.supports3D = "1"
vmotion.svga.baseCapsLevel = "9"
vmotion.svga.maxPointSize = "189"
vmotion.svga.maxTextureSize = "16384"
vmotion.svga.maxVolumeExtent = "2048"
vmotion.svga.maxTextureAnisotropy = "16"
vmotion.svga.lineStipple = "1"
vmotion.svga.dxMaxConstantBuffers = "14"
vmotion.svga.dxProvokingVertex = "1"
vmotion.svga.sm41 = "1"
vmotion.svga.multisample2x = "1"
vmotion.svga.multisample4x = "1"
vmotion.svga.msFullQuality = "1"
vmotion.svga.logicOps = "1"
vmotion.svga.bc67 = "9"
vmotion.svga.sm5 = "1"
vmotion.svga.multisample8x = "1"
vmotion.svga.logicBlendOps = "1"
ethernet0.generatedAddress = "00:0c:29:9b:9e:8c"
ethernet0.generatedAddressOffset = "0"
vmci0.id = "-1650745716"
monitor.phys_bits_used = "45"
cleanShutdown = "FALSE"
softPowerOff = "FALSE"
usb:1.speed = "2"
usb:1.present = "TRUE"
usb:1.deviceType = "hub"
usb:1.port = "1"
usb:1.parent = "-1"
checkpoint.vmState = ""
tools.remindInstall = "FALSE"
vvtd.enable = "TRUE"
vhv.enable = "TRUE"
vpmc.enable = "TRUE"
sata0:1.startConnected = "FALSE"
gui.lastPoweredViewMode = "fullscreen"
toolsInstallManager.lastInstallError = "0"
svga.guestBackedPrimaryAware = "TRUE"
toolsInstallManager.updateCounter = "1"
guestInfo.detailed.data = "architecture='X86' bitness='64' buildNumber='22000' distroName='Windows' distroVersion='10.0' familyName='Windows' kernelVersion='22000.318' prettyName='Windows 10 Pro, 64-bit (Build 22000.318)'"
isolation.tools.hgfs.disable = "FALSE"
sharedFolder0.present = "TRUE"
sharedFolder0.enabled = "TRUE"
sharedFolder0.readAccess = "TRUE"
sharedFolder0.writeAccess = "TRUE"
sharedFolder0.hostPath = "/"
sharedFolder0.guestName = "ROOT"
sharedFolder0.expiration = "never"
sharedFolder.maxNum = "1"
usb.generic.autoconnect = "FALSE"
usb.generic.allowHID = "TRUE"
serial0.startConnected = "FALSE"
nvme0:0.present = "TRUE"
usb_xhci:4.present = "TRUE"
usb_xhci:4.deviceType = "hid"
usb_xhci:4.port = "4"
usb_xhci:4.parent = "-1"
Oh, and you should expect a moderator to move your thread to the Workstation Pro area now that I’ve reported it.
Done!
Thanks @scott28tt
If the Manjaro host has kcompactd running have a look at this thread
https://communities.vmware.com/t5/VMware-Workstation-Pro/VMWare-workstation-in-a-fistfight-with-Linu...
Otherwise, regarding the Windows 11 VM, the vmx configuration text you pasted does not appear to have virtual TPM for the Windows 11 VM.
Starting with version 14.x, you can add a virtual TPM device to a VM, but the requirement is that VM has to be encrypted; and as a result the vmx configuration file and virtual disk of the VM will also be encrypted. For encrypted virtual disk, you should use preallocated because the virtual disk cannot be shrunk once it is encrypted (i.e. writing zeroes from within the VM will result in non-zero values). After you encrypt the VM, add the virtual TPM using the "Add hardware wizard".
With 16.2.x and newer, there is an experimental way to add a virtual TPM without encrypting the vmx configuration file and virtual disks (at least not entirely). Since it is experimental there are issues (such as difficult to remove, cannot use in another host, etc). To use the experimental method for vTPM, shut down the VM add the following line to the vmx configuration
managedVM.autoAddvTPM = "software"
Close the VMware Workstation UI and open again after adding the vmx line and the virtual TPM will be added automatically.
I haven't tried the experimental method on Linux host but tried it on a Windows 11 host.
These lines are not necessary in the vmx configuration file unless you really need them to use the Windows 11 VM. The comments below each line is the equivalent GUI name and the scenario that requires these settings to be enabled.
vvtd.enable = "TRUE"
# Virtualize IOMMU (IO memory management unit in Processors
# You want to run VBS inside Windows 11 VM
vhv.enable = "TRUE"
# Virtualize Intel VT-x/EPT or AMD-V/RVI
# You want to run Hyper-V or WSL2 inside the VM or run another VM inside this VM.
vpmc.enable = "TRUE"
# Virtualize CPU performance counters
# You have some software that require virtualised counters to make accurate measurement of performance of software running inside the VM.
@bluefirestorm wrote:If the Manjaro host has kcompactd running have a look at this thread
https://communities.vmware.com/t5/VMware-Workstation-Pro/VMWare-workstation-in-a-fistfight-with-Linu...
That fixed it, thanks.
blue,
@bluefirestorm wrote:
I haven't tried the experimental method on Linux host but tried it on a Windows 11 host.
as a FYI, the experimental autovTPM method doesn't work on Linux hosts.
See also my edit at 2022/01/24 near the bottom of the article: https://www.vimalin.com/blog/what-you-should-know-about-vmwares-experimental-vtpm/
--
Wil