¿Por qué KVM causaría intermitentemente una carga del 100% de la CPU mediante "interrupciones del sistema" en una máquina virtual con Windows 10?

¿Por qué KVM causaría intermitentemente una carga del 100% de la CPU mediante "interrupciones del sistema" en una máquina virtual con Windows 10?

Estoy ejecutando cien servidores Ubuntu 16.04 LTS con hardware básicamente idéntico distribuido en todo el mundo. (Estoy trabajando para actualizarlos a 20.04 LTS, pero ciertas decisiones de diseño desafortunadas por parte de Ubuntu todavía están bloqueando esto). Cada uno de estos servidores ejecuta una máquina virtual KVM con Windows 10 Enterprise. Tres de ellos muestran el siguiente problema:

Sin ninguna causa aparente, el monitoreo muestra que el promedio de carga de Linux del servidor salta por encima de 2. topMuestra la carga de CPU del qemu-system-x86proceso que ejecuta la VM de Windows sólidamente al 200%, coincidiendo con los 2 núcleos asignados a la VM. El escritorio de Windows al que se accede a través de VNC parece extremadamente lento. El Administrador de tareas de Windows muestra un proceso "El sistema se interrumpe" que consume el 100% de la CPU.

Reiniciar la máquina virtual de Windows no soluciona la situación. Persiste durante varias horas o incluso días y luego vuelve a la normalidad por sí solo, nuevamente sin ninguna causa o motivo aparente.

Al investigar las razones del alto uso de la CPU por "interrupciones del sistema" en Windows, se llega a un consenso general de que se trata de un problema de hardware. El hardware que ejecuta Windows en este caso es virtual, es decir, el hipervisor KVM. El hardware físico de los hosts no cambió antes o después de los episodios de alta carga, ni difiere significativamente entre los servidores que muestran estos episodios y los que no. El sistema host Linux no muestra ningún signo de mal funcionamiento excepto la carga excesiva del invitado Windows. La inspección de los registros de Linux en los sistemas afectados no ha arrojado nada inusual. Los registros de eventos de Windows muestran montones obvios de errores secundarios durante los episodios de carga alta, como servicios que no responden, pero nada que indique una posible causa.

¿Por dónde empezaría a buscar posibles causas de ese comportamiento?

Para completar, esta es mi invocación de KVM:

kvm \
        -daemonize \
        -name "$vmname64-$(hostname)" \
        -drive file="/srv/kvm/${vmname64}.qcow2",if=virtio \
        -net nic,model=virtio,macaddr=$macaddr64 -net tap \
        -vga std \
        -rtc base=localtime \
        -usb -usbdevice tablet \
        -nodefaults \
        -runas srvadmin \
        -chroot /home/srvadmin \
        -k de \
        -smp 2 \
        -m 4096 \
        -vnc :1,password \
        -monitor mon:telnet:127.0.0.1:4445,server,nowait

información relacionada