Xen 和 KVM 的性能对比

最近出现提供 KVM/Qemu VPS 的服务商让 VPSee 有点惊讶,印象当中 KVM 还是一个很新的项目,还远没有达到成熟应用的工业标准,现在已经看到有人/公司开始提供基于 KVM 的 VPS 了,KVM 在众多重量级厂商的强力推动下果然发展很快。2008年9月 RedHat 宣布收购 KVM 老家 Qumranet,并在今年9月份刚刚过去的 Red Hat Summit 2009 上宣布 KVM 将是 RHEL 5.4 的下一代虚拟技术,RHEL 5.4 同时也会支持 Xen,对 Xen 的支持会持续到 RHEL 5 产品线的结束,Novell 已经在 SUSE Linux Enterprise Desktop 产品线上使用 KVM,Ubuntu 已经指定 KVM 为其默认虚拟技术了,KVM 在短时间内就已经赢得了三大 Linux 厂商的支持,想让人忽略都很难。

前天看了一篇关于 Xen 和 KVM 性能对比的 paper,Quantitative Comparison of Xen and KVM(图片来源),较详细的比较了 Xen 和 KVM 的性能和扩展性,不过这篇 paper 的发表时间是2008年6月,有点老了,现在 KVM 的性能和成熟度肯定有了很大的提高。这篇 paper 从三个角度来比较了 Xen 和 KVM 的性能:

总体性能

分别测试 CPU 速度,内核编译速度和 IO 的读写速度,结果如图,Xen 的 CPU 测试结果非常接近 Linux,性能非常好;KVM 在 CPU 测试中表现也不错,比 Xen 差一点,但是在 IO 测试中要比 Xen 好一些。

craigslist internals overview

隔离性能

隔离性能主要用来测试 Xen 和 KVM 能否有效隔离 guest,以便每个 guest 都能公平的得到计算资源,不会被某个“坏” guest 占用资源。在隔离方面 KVM 比 Xen 做得要好一些,Xen 在网络方面几乎没有隔离,虽然隔离性能不好,反而提高了服务器整体的网络利用率,按需分配肯定比平均分配效率高。图中 DNR 的意思是 “did not return”,是最坏的一种情况。

craigslist internals overview

扩展性能

扩展性能测试的是随着 guest 的增多,有没有、有多少额外的性能损失,因为 guest 之间的切换会造成性能损失。测试结果显示 Xen 有很棒的扩展性能,几乎是随着 guest 的个数线性增加的;而 KVM 扩展性能就很差,扩展到4个 guest 就崩溃了1个 guest,扩展到8个崩了4个,扩到16个崩了7个,扩到30个整个系统都崩溃了。

craigslist internals overview

评论 (11 Comments)

  1. Xen 在网络方面几乎没有隔离?

  2. 不好意思没有写清楚,有隔离的,只不过隔离不充分,比如虚拟10个 guest 出来,每个 guest 虚拟网卡得到的网络带宽和性能不一定就是 1/10,会根据实际情况分配,实际上从整体来说反而提高了利用率,提高了整体性能。

  3. 可是xen是不是不能自已增加swap memory ?
    這樣都不好跑吃memory的程序 像java這類的

  4. 可以自己增加,可以用文件当作 swap,不过性能不好,不推荐这种方式。

  5. 扩展性能差的有点夸张,如果是这样是不敢跑企业级应用的

  6. DNR表示did not return 文中有写 翻译的不对

  7. @匿名
    谢谢指正!

    DNR means that the guest “did not return” results and usually indicates a kernel panic or network problem for the guest.

  8. kvm表现这么垃圾?那为什么还大受追捧?

  9. 个人理解:kvm使用简单,适合普通用户
    xen技术成熟,适合企业和高级用户

  10. 刚刚听说有kvm 到你这里来取经了

  11. 太老的测试了,我们现在使用一台kvm hypervisor开30个vm绝对不会panic

发表评论