性能基准测试: KVM vs. Xen

  • 李士窑

2014 年 9 月 12 日

话题:语言 & 开发架构

KVM 即基于内核的虚拟机 (kernel-based Virtual Machine),它是一个开源软件,又是 x86 架构且硬件支持虚拟化技术的 Linux 全虚拟化解决方案,它能够在不改变 Linux 或 Windows 镜像的情况下同时运行多个虚拟机,并为每一个虚拟机配置个性化硬件环境。Xen 早期版本是基于软件模拟的半虚拟化技术,新版本则是基于硬件支持的完全虚拟化。Xen 有自己的进程调度器、存储管理等模块,可以在一套物理硬件上安全的执行多个虚拟机。任职于某 SSL 证书认证机构的系统工程师Major Hayden对 KVM 和 Xen 近几年里在性能上的改进进行了探讨和研究,并找到了2013 年 Phoronix Haswell 性能评测上的基准测试以及一些 2011 年的评测资料。时过境迁,在三年后的现在,Major Hayden 根据材料中的基准报表中的属性重新测试了一遍KVM 和 Xen 性能,现就对这次测试相关信息进行一个全面的梳理:

1、测试环境

测试环境由两台一模一样的超微服务器组成,具体配置和环境信息如下:

  • 一个Intel 至强 E3-1220 CPU(4 核、主频为 3.10GHz)、24G 金士顿 DDR3 内存、4 块西数 RE-3 160G 磁盘(组成 RAID10 阵列)
  • 一模一样的 BIOS
  • Fedora 20 操作系统
  • 相关服务的版本情况是:Kernel 3.14.8、qemu-kvm 1.6.2、Xen 4.3.2
  • 根文件系统使用默认配置的 XFS
  • 虚拟机使用默认配置的 virt-manager 来创建
  • 虚拟磁盘使用 raw 镜像,容量为 8GB,虚拟 4 个 CPU,其中 Xen 虚拟机使用 PVHVM 模型建立虚拟磁盘

2、测试结果

本测试使用裸机作为虚拟服务测试的基准设备,在不运行虚拟机的情况下,两台裸机的性能偏差不会大于 0.51%。在几乎所有测试中,KVM 的性能相比宿主机而言下降了 1.5% 以内,只有两项测试例外,第一个是 7-zip 压缩,比宿主机慢了 2.79%,第二个是用 PostMark 进行了多次测试,结果表明 KVM 竟比宿主机大约快了 4.11%。

Xen 的性能相对宿主机而言差异比较大,有 3 项测试性能下降在低于 2.5%,其他的性能下降率都是 KVM 的 2~4 倍,PostMark 测试的性能比 KVM 慢了大约 14.41%,具体测试结果请参考如下表:

 

最佳值

裸机

KVM

Xen

C-Ray

较低

35.35

35.66

36.13

POV-Ray

较低

230.02

232.44

235.89

Smallpt

较低

160

162

167.5

John the Ripper (Blowfish)

较高

3026

2991.5

2856

John the Ripper (DES)

较高

7374833.5

7271833.5

6911167

John the Ripper (MD5)

较高

49548

48899.5

46653.5

OpenSSL

较高

397.68

393.95

388.25

7-Zip

较高

12467.5

12129.5

11879

Timed MAFFT Alignment

较高

7.78

7.795

8.42

CLOMP

较高

3.3

3.285

3.125

PostMark

较高

3667

3824

3205

另外,请读者注意,以上只是部分测试数据,更多结果信息请查看Goole Docs

3、结论

基于以上的测试环境,KVM 的性能损耗几乎都在 2%以内,Xen 则在十多项测试中有 3 项损耗在 2.5%以内,其他几项损耗都在 5~7% 之间。虽然 KVM 在 PostMark 测试中性能表现优异,但这是众多测试中仅有的一项 I/O 测试,如果想证明 KVM 确实在 I/O 处理方面很强大,则需要更多测试。

关于 KVM 和 Xen 在 I/O 方面的处理,以及它们之间为什么会有这么大的差别,Major Hayden 计划进行新一轮的测试,以确定虚拟机在有压力的条件下是否真的能比宿主机表现得更出色。


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

语言 & 开发架构