性能基准测试: KVM vs. Xen

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中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

你可能感兴趣的:(性能基准测试: KVM vs. Xen)