為什麼 KVM 會在 Windows 10 VM 中透過「系統中斷」間歇性地導致 100% CPU 負載?

為什麼 KVM 會在 Windows 10 VM 中透過「系統中斷」間歇性地導致 100% CPU 負載?

我正在運行一百台 Ubuntu 16.04 LTS 伺服器,它們的硬體分佈在世界各地,基本上相同。 (我正在努力將它們升級到 20.04 LTS,但 Ubuntu 方面的某些不幸的設計決策仍然阻止了這一點。)這些伺服器中的每一個都運行帶有 Windows 10 Enterprise 的 KVM 虛擬機。其中三個顯示了以下問題:

在沒有任何明顯原因的情況下,監控顯示伺服器的 Linux 負載平均值躍升至 2top以上qemu-system-x86。透過VNC存取的Windows桌面顯得極為緩慢。 Windows 工作管理員顯示進程「系統中斷」佔用 100% CPU。

重新啟動 Windows VM 並不能解決此問題。它持續幾個小時甚至幾天,然後自行恢復正常,同樣沒有任何明顯的原因或原因。

研究 Windows 中「系統中斷」導致 CPU 使用率高的原因後發現,這是一個硬體問題。在這種情況下執行Windows的硬體是虛擬的,即KVM管理程式。主機的實體硬體在高負載事件之前或之後沒有變化,顯示這些事件的伺服器和不顯示這些事件的伺服器之間也沒有顯著差異。除了 Windows 用戶端的過多負載之外,Linux 主機系統沒有顯示任何故障跡象。檢查受影響系統上的 Linux 日誌沒有發現任何異常。 Windows 事件日誌顯示高負載期間明顯的大量次要錯誤,例如服務沒有回應,但沒有任何跡象表明可能的原因。

我該從哪裡開始尋找該行為的可能原因?

為了完整起見,這是我的 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

相關內容