私は世界中に分散した基本的に同一のハードウェアを搭載した Ubuntu 16.04 LTS サーバーを 100 台実行しています。(20.04 LTS へのアップグレードに取り組んでいますが、Ubuntu 側の残念な設計上の決定により、まだこれが妨げられています。) これらの各サーバーは、Windows 10 Enterprise で KVM VM を実行しています。そのうち 3 台で次の問題が発生しています。
明らかな原因もなく、監視により、サーバーの Linux 負荷平均が 2 以上に跳ね上がっていることがわかります。Windows VM を実行しているプロセスtop
の CPU 負荷がqemu-system-x86
200% で安定しており、VM に割り当てられた 2 つのコアと一致しています。VNC 経由でアクセスした Windows デスクトップは非常に遅く見えます。Windows タスク マネージャーには、CPU を 100% 消費するプロセス「システム割り込み」が表示されます。
Windows VM を再起動しても状況は改善されません。状況は数時間または数日間続き、その後、明らかな原因や理由もなく、自然に正常に戻ります。
Windows の「システム割り込み」による CPU 使用率の上昇の原因を調査すると、これはハードウェアの問題であるという一般的な見解が示されます。この場合、Windows を実行しているハードウェアは仮想ハードウェア、つまり KVM ハイパーバイザーです。ホストの物理ハードウェアは、高負荷エピソードの前後で変更されておらず、これらのエピソードを示すサーバーと示さないサーバーの間で大きな違いはありません。Linux ホスト システムには、Windows ゲストからの過度の負荷を除いて、機能不全の兆候は見られません。影響を受けたシステムの 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