Bigjohns97 Posted March 14, 2020 Share Posted March 14, 2020 I am seeing horrible cpu usage from my windows 10 vm that has 4 physical and 8 logical cores assigned along with 8GB or RAM. The cpu is a x3950 xml shown below. <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm'> <name>DL</name> <uuid>cce2c555-cb61-0412-06bc-7ffb50430328</uuid> <description>Win10</description> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>8</vcpu> <cputune> <vcpupin vcpu='0' cpuset='4'/> <vcpupin vcpu='1' cpuset='20'/> <vcpupin vcpu='2' cpuset='5'/> <vcpupin vcpu='3' cpuset='21'/> <vcpupin vcpu='4' cpuset='6'/> <vcpupin vcpu='5' cpuset='22'/> <vcpupin vcpu='6' cpuset='7'/> <vcpupin vcpu='7' cpuset='23'/> </cputune> <os> <type arch='x86_64' machine='pc-q35-4.2'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/cce2c555-cb61-0412-06bc-7ffb50430328_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> </features> <cpu mode='host-passthrough' check='none'> <topology sockets='1' cores='4' threads='2'/> <cache mode='passthrough'/> <feature policy='require' name='topoext'/> </cpu> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> <timer name='hypervclock' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/user/domains/DL/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/user/domains/DL/vdisk2.img'/> <target dev='hdd' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </disk> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x10'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x11'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0x12'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0x13'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </controller> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='usb' index='0' model='qemu-xhci' ports='15'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:22:b2:c6'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </memballoon> </devices> </domain> I have noticed this is an ongoing issue with KVM and windows 10 vm's as seen from thee links below. https://serverfault.com/questions/955439/why-windows-10-virtual-machine-show-high-cpu-load-on-kvm-hyprvisor https://forum.proxmox.com/threads/high-cpu-load-for-windows-10-guests-when-idle.44531/#post-213876 https://bugs.launchpad.net/qemu/+bug/1775702 https://askubuntu.com/questions/1033985/kvm-high-host-cpu-load-after-upgrading-vm-to-windows-10-1803 enabling hpet and hypervclock did settle it down a little bit but still nothing like the others. I am struggling trying to enable <synic state='on'/> <stimer state='on'/> as every time i go into the xml and enter this in it gets wiped after i save it, has anyone else run into this issue? Here is another link that shows all of these hyperv options availible https://github.com/qemu/qemu/blob/master/docs/hyperv.txt Quote Link to comment
toastman Posted March 14, 2020 Share Posted March 14, 2020 (edited) When you say "horrible CPU usage" are you referring to idle usage, or problems in normal operation? I had idle usage of 10-15% and I had to set <timer name='hpet' present='yes'/> (you have it set to 'no') to get it to drop down to 0-1% at idle. In a previous VM, I also had to delete unused USB root hubs in the VM device manager. I don't see any hyper-v settings enabled in your XML. You need those for stimer, etc. My xml for comparison <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough' check='none'> <topology sockets='1' cores='4' threads='1'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> <timer name='hpet' present='yes'/> </clock> Edited March 14, 2020 by toastman Quote Link to comment
Bigjohns97 Posted March 14, 2020 Author Share Posted March 14, 2020 1 minute ago, toastman said: When you say "horrible CPU usage" are you referring to idle usage, or problems in normal operation? I had idle usage of 10-15% and I had to set <timer name='hpet' present='yes'/> (you have it set to 'no') to get it to drop down to 0-1% at idle. In a previous VM, I also had to delete unused USB root hubs in the VM device manager. I don't see any hyper-v settings enabled in your XML. You need those for stimer, etc. Yes I am just referring to idle usage, in the vm settings if i enable hyper-v it goes away after i save, same goes for if i add it to the xml manually. I did end up enabling hpet and it helped a little, I haven't tried deleting unused USB root hubs yet but i did switch it over to usb 3.0 and it seemed to take them all away. Quote Link to comment
testdasi Posted March 14, 2020 Share Posted March 14, 2020 11 minutes ago, Bigjohns97 said: Yes I am just referring to idle usage, in the vm settings if i enable hyper-v it goes away after i save, same goes for if i add it to the xml manually. I did end up enabling hpet and it helped a little, I haven't tried deleting unused USB root hubs yet but i did switch it over to usb 3.0 and it seemed to take them all away. You have to start a new template to change Hyper-V state. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.