Por que o KVM causaria intermitentemente 100% de carga da CPU por "interrupções do sistema" em uma VM do Windows 10?

Por que o KVM causaria intermitentemente 100% de carga da CPU por "interrupções do sistema" em uma VM do Windows 10?

Estou executando cem servidores Ubuntu 16.04 LTS com hardware basicamente idêntico distribuído em todo o mundo. (Estou trabalhando para atualizá-los para 20.04 LTS, mas certas decisões de design infelizes por parte do Ubuntu ainda estão bloqueando isso.) Cada um desses servidores está executando uma VM KVM com Windows 10 Enterprise. Três deles mostram o seguinte problema:

Sem qualquer causa aparente, o monitoramento mostra a média de carga do Linux do servidor saltando para acima de 2. topmostra a carga da CPU do qemu-system-x86processo que executa a VM do Windows solidamente em 200%, correspondendo aos 2 núcleos atribuídos à VM. A área de trabalho do Windows acessada através do VNC parece extremamente lenta. O Gerenciador de Tarefas do Windows mostra um processo "Interrupções do sistema" consumindo 100% da CPU.

Reiniciar a VM do Windows não resolve a situação. Persiste por várias horas ou até dias e depois volta ao normal por conta própria, novamente sem qualquer causa ou motivo aparente.

A pesquisa das razões para o alto uso da CPU por “Interrupções do sistema” no Windows resulta em um consenso geral de que este é um problema de hardware. O hardware que executa o Windows, neste caso, é virtual, ou seja, o hipervisor KVM. O hardware físico dos hosts não mudou antes ou depois dos episódios de alta carga, nem difere significativamente entre os servidores que mostram esses episódios e aqueles que não o fazem. O sistema host Linux não mostra nenhum sinal de mau funcionamento, exceto a carga excessiva do convidado do Windows. A inspeção dos logs do Linux nos sistemas afetados não revelou nada de incomum. Os logs de eventos do Windows mostram montes óbvios de erros secundários durante episódios de alta carga, como serviços que não respondem, mas nada indicando uma possível causa.

Onde eu começaria a procurar possíveis causas desse comportamento?

Para completar, esta é minha invocação 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

informação relacionada