KVM虚拟机空闲却占用CPU很高

问题描述

一台KVM客户机系统是Windows系统,当Windows系统空闲时,从Linux看到的qemu-system-x86_64进程CPU占用率却很高。
这肯定是有问题的。

搜索

https://codingpackets.com/blog/kvm-host-high-cpu-fix/ https://www.kernel.org/doc/Documentation/virtual/kvm/halt-polling.txt

halt-polling用于在客户机选择不再运行后再轮询一段时间,以减少客户机延时。适用于客户机程序经常需要唤醒的场景。
但是对于长期空闲的客户机,这种轮询会导致CPU占用率很高。

处理

可以选择关闭此功能。

临时关闭

$ echo 0 | sudo tee /sys/module/kvm/parameters/halt_poll_ns

永久关闭

$ echo "options kvm halt_poll_ns=0" | sudo tee -a /etc/modprobe.d/qemu-system-x86.conf

后续

Windows11客户机依然在空闲时占用单核心80%-110%的CPU。 尝试再安装一个Windows10的客户机,空闲占用单核心15%-25%的CPU。未找到原因。


最后修改于 2024-12-11