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 )关注我们,并与我们的编辑和其他读者朋友交流。
评论