web-dev-qa-db-fra.com

KVM: charge élevée du processeur hôte après la mise à niveau de VM vers Windows 10 1803

J'utilise un serveur Ubuntu 16.04 avec KVM/libvirt/qemu et une machine virtuelle Windows 10. Après la mise à niveau de Windows 10 vers la dernière version 1803 (mise à jour d'avril 2018), j'ai constaté un ralentissement de la réactivité VM et une charge de processeur trop importante dans l'hôte. Les tests que j'ai faits:

  • "top" utilisé sur l'hôte indique que le processus qemu-system-x86 occupe 38 à 44% du processeur, tandis que le VM est inactif et génère 4 à 6% de la charge dans le gestionnaire de processus Windows. Lorsque Windows indique 50% de la charge du processeur, l'hôte affiche une charge de 150 à 200% du processeur pour le processus qemu-system-x86. Cette augmentation de 8-10 fois de la charge du processeur hôte ne se produit pas avec l’ancienne machine virtuelle Windows 10 1709.
  • "dstat" sur l'hôte rapporte beaucoup de système-> CSW, environ 13k.
  • J'ai testé un autre système avec la même configuration avec un processeur AMD FX-4300, Ubuntu 17.10 dekstop + kvm, une mise à niveau de Windows 10 à 1803 et j'ai le même problème de haut CPU hôte et dstat-csw également sur cette machine.
  • J'ai pris une troisième machine avec un Core i7 d'Intel, installé un nouveau bureau Ubuntu 18.04 + kvm, installé une nouvelle version de Windows 10, des pilotes Virtio installés disponibles à partir de ici et j'ai le même problème de haute CPU.

Que puis-je faire? Est-ce que j'utilise les bons pilotes virtio?

Je vous remercie

1
giox069

Trouvez quelqu'un avec le même problème et une solution possible à ce problème ici: https://forum.proxmox.com/threads/high-cpu-load-for-windows-10-guests-when-idle.44531/

Testé en changeant ma propre configuration, et en réglant hpet sur oui dans le vm xml, cela a résolu le problème pour moi.

  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='yes'/>
    <timer name='hypervclock' present='yes'/>
  </clock>

la partie hpet est importante.

4
MKHR