qemu-kvm 在启动 Win 7 时占用 100% CPU

qemu-kvm 在启动 Win 7 时占用 100% CPU

我有带有 qemu-kvm 版本的 Centos 6:

qemu-kvm.x86_64         2:0.12.1.2-2.448.el6_6.4

在配备 2x Xeon 5110 的 Dell Precision 上

当我运行 VM 时,qemu-kvm 进程占用了 100% 的 CPU,并且在 VM 上启动 Windows 需要很长时间。我不知道为什么。有人可以帮忙吗?

我的虚拟机配置:

<domain type='qemu'>
  <name>window7</name>
  <uuid>0f606bdd-735f-d4fd-ac1d-ec37b4814d30</uuid>
  <memory unit='KiB'>1433600</memory>
  <currentMemory unit='KiB'>1433600</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='rhel6.6.0'>hvm</type>
    <boot dev='hd'/>
    <boot dev='cdrom'/>
    <bootmenu enable='yes'/>
  </os>
  <features>
    <acpi/>
    <pae/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>core2duo</model>
    <vendor>Intel</vendor>
    <feature policy='require' name='pbe'/>
    <feature policy='require' name='tm2'/>
    <feature policy='require' name='ds'/>
    <feature policy='require' name='ss'/>
    <feature policy='require' name='dtes64'/>
    <feature policy='require' name='ht'/>
    <feature policy='require' name='dca'/>
    <feature policy='require' name='lahf_lm'/>
    <feature policy='require' name='tm'/>
    <feature policy='require' name='cx16'/>
    <feature policy='require' name='vmx'/>
    <feature policy='require' name='ds_cpl'/>
    <feature policy='require' name='pdcm'/>
    <feature policy='require' name='xtpr'/>
    <feature policy='require' name='acpi'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/home/win7.img'/>
      <target dev='sda' bus='scsi'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/pl_windows_7_with_sp1_x86_dvd_u_12032015.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='scsi' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:bd:a9:51'/>
      <source network='default'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
      <listen type='address' address='127.0.0.1'/>
    </graphics>
    <video>
      <model type='vga' vram='9216' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
</domain>

答案1

这里有一个严重的问题:

<domain type='qemu'>

它应该显示为:

<domain type='kvm'>

如果将其设置为 qemu,则 qemu 将在没有任何硬件虚拟化支持的情况下运行机器。如果不设置此选项,则不会通知 qemu 启用 KVM 硬件加速。这对于模拟非英特尔处理器等来说很好,但它总是比使用 kvm 提供的硬件加速慢得多。

答案2

坏消息

您正在运行一个有些老旧的系统。您的 CPU 已有 6 年或 9 代历史,甚至在当时也是该系列中最便宜的入门级型号。

即使启用了虚拟化扩展 (VT-x),我担心您的系统仍然会有些慢。这是因为处理器支持的第一代虚拟化指令无论如何都不会对性能产生太大影响。使用硬件功能的性能提升主要来自 Nehalem CPU 架构(第 4 代之后)和 VT-x EPT 指令。因此,虽然出于硬件加速的考虑,使用 KVM 而不是 Qemu 通常是有利的,但我认为切换到任何其他虚拟机管理程序都不会真正获得很多性能提升。

好消息

由于您运行的是相当旧的系统,备件和升级零件的价格基本已降至最低。

例如,Xeon 5110 的一个不错的升级是 Xeon 5160(1.6 vs 3 Ghz)。它是 Xeon 5100 系列中速度最快的型号,在 eBay 上的售价为2美元. 与该处理器匹配的内存升级 (DDR2 FB-DIMM) 也非常便宜。

根据您的 Precision 的版本(它将适用于第二代 490 和 T5400),您甚至可以运行第一代四核处理器(Xeon 5300 系列) - 但在我看来,5160 无论如何都是一个安全的升级。

免责声明

您应该意识到,即使升级了处理器,系统仍然不会很快,但您应该能够看到性能比当前情况提高 100%,而且几乎不需要花费任何钱。

我目前正在运行一个类似的设备(双 3 Ghz Xeon 5160 + 12 GB DDR2),使用 VirtualBox 在 Ubuntu 12.04 上运行免费的 modern.ie Windows 映像。它相当不错/可用,但离“快”还差得很远。我不需要那么频繁,所以对我来说没问题。

相关内容