centos7 – Why does the Windows 10 virtual machine display high processor load on KVM hyprvisor?

On KVM hypervisors (Centos 7), Windows 10 virtual machines display high CPU usage. About 30%. Other Linux, Windows 2k16, Windows 2k12, and Windows 7 virtual machines use only 1% to 7% of the CPU.

By CPU load, I refer to the% CPU column in the "top" output for qemu-kvm processes. For example, below the main output, the first 2 processes are Windows 10 virtual machines, while this hypervisor also has some Linux, Windows 2k12, Windows 7, and Windows 2k16 VMS systems running.

top - 08:04:31 up to 9 days, 20:05, 1 user, average load: 1.07, 1.04, 0.98
Tasks: 333 total, 2 running, 165 standby, 0 off, 0 zombie
% Cpu (s): 1.4 us, 1.6 sy, 0.0 ni, id 97.0, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 39623299 + total, 37377676 + free, 21391056 used, 1065184 buff / cache
KiB Swap: 8388604 total, 8388604 free, 0 used. 37248361 + Available in Mem

PID USER OR VIRT RES SHR S% CPU% MEM TIME + COMMAND
570162 qemu 20 0 3053036 2.3 g 30468 S 29.2 0.6 259: 41.40 qemu-kvm
569759 qemu 20 0 3054316 2.3 g 30964 S 28.2 0.6 252: 47.93 qemu-kvm
543245 qemu 20 0 3221396 2.5 g 30700 S 7.0 0.7 201: 02.59 qemu-kvm
543511 qemu 20 0 3222416 2.5 g 30388 R 6.0 0.7 0.7 199: 15.69 qemu-kvm
7803 root 10 -10 1005872 135920 9628 S 4.7 0.0 115: 42.79 ovs-vswitchd
539175 qemu 20 0 3256520 2.5 g 30796 S 2.3 0.7 136: 58.51 qemu-kvm
538482 qemu 20 0 3252560 2.5g 30316 S 2.0 0.7 136: 27.08 qemu-kvm
539317 qemu 20 0 3239552 2.5 g 30744 S 1.7 0.7 75: 38.31 qemu-kvm
539459 qemu 20 0 3233408 2.5 g 30724 S 1.0 0.7 28: 17.44 qemu-kvm
7730 root 10 -10 46072 6632 3780 S 0.7 0.0 9: 33.40 Server ovsdb

I looked around and found some suggestions like

  1. Enable hpet (high precision event timer) in VM config
  2. USB Tablet Device Tower in VM config

But none of this seems to solve the problem.

I do not see such a load problem on XEN hypervisors.

The hypervisor is Centos 7.6.1810 with kernel 4.20.8-1.el7.elrepo.x86_64 and qemu-kvm-1.5.3-160.

The full qemu options that the VM runs are described below.

/ usr / libexec / qemu-kvm -nom 7f96031a1afac1394534792b82606e2e -S -machine pc-i440fx-rhel7.0.0, accel = kvm, usb = off, dump-guest-core = off the stack IvyBridge-IBRS, + ds + ss, + ht, + tm, + pbe, + dtes64, + monitor, + ds_cpl, + vmx, + smx, + is, + tm2, + xtpr, + pdcm, + pcid, + dca, + osxsave, + arat, + stibp , + ssbd, + xsaveopt, + pdpe1gb, hv_time, hv_relaxed, hv_vapic, hv_spinlocks = 0x1fff -bios /usr/share/edk2.git/ovmf-x64/OVMF-pure-efi.fm. = off -smp 2, sockets = 2, cores = 1, threads = 1 -uuid c66b5fed-8db2-4b35-984d-8e4c20cea10a -no-user-config -nodefaults -chardev socket, id = charmonitor, path = / var / lib /libvirt/qemu/domain-12-7f96031a1afac1394534/monitor.sock,server,nowait -mon chardev = charmonitor, id = monitor, mode = control -rtc base = localtime, driftfix = slew -global kvm-pit.lost_tick_policy = no delay -hpet -no-shutdown -global PIIX4_PM.disable_s3 = 1 -global PIIX4_PM.disable_s4 = 1 -boot strict = on-process piix3-usb-uhci, id = usb, bus = pci.0, addr = 0x1xx - drive file = rbd: cvm2 / 7f96031a1afac1394534792b82606e2e-1: id = client2user: key = AQCWBYtbz lLBABAAuJJjzV6pJuY2GxHvB4Qv8g ==: auth_supported = cephx ; none, format = raw, if = none, id = drive-virtio-disk0, accelerator.bps-total = 500000000, accelerator.iops-read = 2500 000, accelerator. -device virtio-blk-pci, scsi = off, bus = pci.0, addr = 0x4, drive = drive-virtio-disk0, id = virtio-disk0, bootindex = 1 -netdev tap, fd = 27, id = hostnet0 , vhost = on, vhostfd = 35 - virtio-net-pci device, netdev = hostnet0, id = net0, mac = 00: 16: ee: 61: 2d: ba, bus = pci.0, addr = 0x3 -netdev tap , fd = 36, id = hostnet1, vhost = on, vhostfd = 37 - virtio-net-pci device, netdev = hostnet1, id = net1, mac = 00: 16: 27: 4e: c4: d5, bus = pci. 0, addr = 0x5 -travevev pty, id = charserial0 -device is a series, chardev = charserial0, id = serial0 -vnc 10.1.1.48:4, share_allow -exclusive -vga std -global VGA.vgamem_mb = 16 -device virtio-balloon-pci, id = balloon0, bus = pci.0, addr = 0x6-msg timestamp = on

Any help or suggestion will be appreciated.

cordially