我们在 Ubuntu 12.04 上使用 KVM/qemu 生成 Windows 2008 R2 VM,该 VM 使用大量主机资源(所有 CPU 核心、4GB RAM)。似乎在 Windows 启动期间,Windows 会分配其所有已分配的内存,这确实会破坏主机资源,有时似乎会导致 KVM 出现段错误。
除了使用 virtio 驱动程序等之外,是否有任何针对此类部署的建议设置或选项(更多地考虑虚拟机管理程序设置或主机内核调整)。
答案1
事实证明,这是 Ubuntu 12.04 LTS 使用的内核或 QEMU 版本的某种组合,因为升级到 12.10 已完全解决了此问题。我在使用“perf top”调试启动期间的 KVM 进程时遇到了这个问题,它显示了大量的问题,__ticket_spin_lock
在搜索 KVM 档案后,出现了关于可能的内核调度的评论,以及提到改进调度问题的较新的 QMEU 补丁。
以下版本是 12.10 使用的。
QEMU emulator version 1.2.0 (qemu-kvm-1.2.0+noroms-0ubuntu2.12.10.6, Debian)
Kernel 3.5.0-46-generic
我绝对会推荐将此版本作为 Ubuntu 的最低版本 - 性能提升非常显著。虽然我们通常更喜欢 LTS,但在这种情况下,它更容易升级,而且 14.04 LTS 应该很快就会推出。