【学习】性能基准测试:KVM大战Xen

在上周,我们对 KVM 和 Xen 近几年里在性能上的改进进行了一些有趣的探讨后,我打算自己做一些这方面的小研究。我能找到的最新的资料,是来自2013年 Phoronix Haswell 性能评测上的基准测试。当然,还有其它一些2011年的评测,不过由于 Xen 被收录进 Kernel 3.0,它们都已被热烈地讨论过。

2011年的测试提供了许多很好的基准报表,在三年后的现在,我尽最大努力把它们列出的属性重新测试一遍。但我删减了其中两三个基准测试,原因是它们在未经特定优化的配置后跑出来的数据不是很好,或者它们需要跑很长时间才能得到结果。

RHEL6 KVM虚拟化创建桥接网卡-网桥 http://www.linuxidc.com/Linux/2013-08/88517.htm

RedHat Linux KVM虚拟机桥接 http://www.linuxidc.com/Linux/2013-02/79934.htm

CentOS 5.6下KVM的安装/桥接设置/虚拟机创建及运行 http://www.linuxidc.com/Linux/2012-12/76883.htm

Ubuntu下用libvirt安装KVM虚拟机时找不到/bin/qemu-kvm问题解决 http://www.linuxidc.com/Linux/2013-08/88985.htm

测试环境

测试环境由两台一模一样的超微服务器组成,分别都配备一颗Intel至强 E3-1220(4核,3.10GHz),24G 金士顿DDR3 内存,4块西数 RE-3 160G 磁盘(组成 RAID10 阵列)。另外 BIOS 也是一模一样。

所有测试项目(即实体机和虚拟机)都在 Fedora 20 (开 SELinux)上进行,并且测试过程中几乎没有运行的不相关的服务。这里列一下相关服务的版本: •Kernel: 3.14.8 •For KVM: qemu-kvm 1.6.2 •For Xen: xen 4.3.2

根文件系统都是使用默认配置的 XFS。虚拟机使用 virt-manager 来创建(virt-mamager 也使用默认配置)。虚拟磁盘使用 raw 镜像,容量为 8GB,虚拟4颗 CPU。Xen 虚拟机使用 PVHVM建立虚拟磁盘。

附加说明

也许有人会考虑到 Fedora 是红帽公司所有,红帽一直在维护 KVM,而 Xen 则自从在2009年红帽重新选择 KVM 作为虚拟化产品后,再没得到这个公司的重要改进。我将这个因素排除在了测试所考虑的范围之外,不过仍然可以在心里稍微注意一下。

并且,资源竞争产生的影响也有被严格控制并最小化。在大多数虚拟服务器上,你可以跑多个虚拟机,而这些虚拟机会争用 CPU 时间片、磁盘 IO、网络带宽等等资源。在本测试中也不考虑这些因素。一台虚拟机抢到资源少,性能就差,而另一台抢得多,性能就好(LCTT译注:它们的性能总和,就可 以大致当作是 KVM 或 Xen 的性能了)。

本测试运行在 Intel 的 CPU 上。如果使用的是 AMD 或ARM,可能有些数据会不一样。

结果

本测试使用裸机作为虚拟服务测试的基准设备。在不跑虚拟机的情况下,两台裸机的性能偏差不会大于0.51%

在几乎所有测试中,KVM 的性能相比宿主机而言下降了1.5%以内,只有两项测试例外。第一个是 7-zip 压缩,比宿主机慢了 2.79%。第二个就奇怪了,我们搭了一个邮件服务器,用 PostMark 测试其性能,结果表明 KVM 竟比宿主机快了4.11%。然后我在两台服务器中重新跑了几遍 PostMark 测试,结果性能差异基本不变,浮动都在最初测试结果的1%以内。由于我对 virtio 的内部机制没有很深的理解,我只能在以后再对这个怪现象进行进一步了解。

Xen 的性能相对宿主机而言差异就比较大了。有3项测试性能下降在2.5%以内,剩下的性能下降率都是 KVM 的2~4倍。PostMark 测试的性能比 KVM 慢了14.41%,这结果令我大吃一惊。重新跑了下测试,性能差还是几乎不变,浮动都在最初结果的2%以内。KVM 表现最好的 CPU 测试:MAFFT对齐测试,是 Xen 表现倒数第二差的。

现在奉上一个简短得总结表

如果需要完整数据,请查看Goole Docs 电子表格。

结论

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

对我来说,我想要深入了解一下 KVM 和 Xen 在 I/O 方面的处理,以及它们之间为什么会有这么大的差别。我也许还会跑一些有竞争的测试,来看看虚拟机在有压力的条件下是否真的能比宿主机表现得更出色。

我鼓励读者通过使用Phoronix 测试套件来进行一些基准测试,你们可以找到一些能模仿你们工作环境的用例。如果你的工作环境是低 CPU 高 I/O,你可以找找套件里面的 I/O 压力测试。另一方面,如果你的工作是音频、视频转码,你可以试试套件里面的x264 或 mp3 测试。

更新:Chris Behrens 指出, 我忘了提到 Xen 虚拟机类型了。这里补充下,我使用的是 PVHVM 模型(LCTT译注:目前支持的模型包括 PV、HVM和 PVHVM),因为在 Xen 4.3 中这个选拥有最好的性能。另外需要注意的是在 Xen 4.4 中可以使用 PVH,但是在 Fedora 20 中还没有使用 Xen 4.4。

原文发布于微信公众号 - PPV课数据科学社区(ppvke123)

原文发表时间:2014-08-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

Kubernetes的前世今生和未来

有人认为自动化,云计算和人工智能是第四次工业革命。如果你开始感受到IT领域自动化率的飙升,特别是在应用程序部署和管理领域(我觉得还不是无缝的自插拔式),那么不用...

2436
来自专栏CodeSheep的技术分享

利用K8S技术栈打造个人私有云(连载之:初章)

最近在学习Docker技术,相信Docker技术大家都有所了解,Docker类似于虚拟机(但与虚拟机又有本质不同),提供进程级别的隔离。我们可以利用Docker...

39915
来自专栏Cloud Native - 产品级敏捷

微服务架构 (三): 在微服务的架构中, 也许不需要 Integration Hub

2016.8.12, 深圳, Ken Fang  在微服务的核心概念中, api layer 主要是在微服务与微服务外部的使用者界面、系统或设备之间构建 end...

2008
来自专栏EAWorld

容器镜像仓库之选:企业级容器registry Harbor实践(上)

目录: 1.背景 2.开源Docker Registry的不足 3.新的选择--Harbor 4.Harbor的使用 背景 公司于去年启动了新一代数字化企业云平...

5006
来自专栏古时的风筝

Docker:Ubuntu下的安装

Docker是什么 Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托 管在 GitHub ...

3895
来自专栏邵靖的专栏

一个基于 Docker 的负载均衡实例

本文目地主要是给大家简单安利一下目前最火的容器产品 Docker 及其所涉及的相关技术,并通过一个实际例子演示一下容器技术的典型应用场景。

3K1
来自专栏企鹅号快讯

新版微信主界面新增小程序入口,小程序真正的红利已来临

微信小程序最近的更新又有点勤快了啊,就在刚才,在我百无聊赖的刷朋友圈的时候,微信公众平台官方给我推荐了这么一条消息,如图: ? 说实话,对于微信小程序这样的消息...

2049
来自专栏腾讯大数据的专栏

Docker On Gaia——腾讯Docker管理解决方案

要问2015年什么最火,耐人寻味的股票走势?黄晓明baby领证?Apple Watch 销量会有多好?我无法准确回答你,每个人心中都有自己的答案。不过要问技术领...

2809
来自专栏腾讯大数据的专栏

“超级计算机”再现-Gaia集群操作系统为业务插上云的翅膀

1. 引言 在互联网用户和应用爆炸的今天,我们承载的服务和运算,无论在规模还是性能上都提出了前所未有的要求,开发人员常常偷偷在想,能不能给我一个超级计算机,很多...

4695
来自专栏一名叫大蕉的程序员

我学啥你就学啥Kubernetes(0)No.119

好,现在开始跟大家一起学习 Kubernetes ,本系列文章不会有什么安排,起点就是,我学什么我就向你们分享什么,期望大家对这门目前比较主流的技术有一定的...

863

扫码关注云+社区

领取腾讯云代金券