写点什么

性能基准测试: KVM vs. Xen

  • 2014-09-12
  • 本文字数:1354 字

    阅读完需:约 4 分钟

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

2014-09-12 00:254933
用户头像

发布了 92 篇内容, 共 43.2 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

云原生时代的应用端到端可观测体系如何构建?

嘉为蓝鲸

运维 监控 可观测性 告警

【FAQ】关于华为地图服务定位存在偏差的原因及解决办法

HMS Core

地图

WhaleDI自助建模实践与探索

鲸品堂

AI Codec 建模

TOGAF认证考试开启“主线+支线+副本”模式!

涛哥 数字产品和业务架构

浅谈 Python 中的迭代器

何极光

Python 迭代器 10月月更

重磅,无需特殊工具,直接访问网站!

八点半的Bruce.D

NFT铸造智能合约系统开发丨DAPP开发

l8l259l3365

ITSM | 对话龙智资深技术顾问,探讨ITSM实践如何从过去转向未来

龙智—DevSecOps解决方案

ITSM ITSM解决方案

排障最后一公里,“融合”型的日志平台应该如何建设?

嘉为蓝鲸

运维 监控 日志 可观测性 告警

滴滴Java后台3面题目:网络+内存溢出+各种锁+高性能+消息队列

小小怪下士

Java spring 面试 JVM

DevOps下测试的生存之道

嘉为蓝鲸

DevOps 测试

澜舟科技推出【熊猫小说家】小程序,用 AI 书写你的故事

澜舟孟子开源社区

人工智能 nlp AIGC

千锋武汉分校前端学员走访英志软件,并开展现场面试

千锋IT教育

开源代码安全 | 微软是如何应对开源代码安全问题的?

龙智—DevSecOps解决方案

开源 开源代码

uniapp 提示 打包时未添加 push模块

源字节1号

软件开发 前端开发 后端开发 小程序开发

嘉为蓝鲸可观测性产品获Gartner Toolkit 推荐

嘉为蓝鲸

运维 监控 Gartner 可观测

如何让 SAP Spartacus 访问 navigation node 的上下文,暴露更多的字段

阿英

typescript angular SAP Spartacus 10月月更

Sanitizers 系列之 address sanitizer 原理篇

网易云信

数据库 算法 系统

一文浅析人工智能领域相关概念之间的关系

九章云极DataCanvas

人工智能 神经网络 机器学习

半导体初创公司如何加速成功?

龙智—DevSecOps解决方案

IP IP管理

2022年最新数据库经典面试题及答案汇总(含PostgreSQL、Oracle、MySQL)

墨天轮

MySQL 数据库 oracle postgresql 面试题

使用Docker部署软件运行环境

源字节1号

软件开发 前端开发 后端开发 小程序开发

浅谈Python中的生成器

何极光

Python 生成器 10月月更

性能基准测试: KVM vs. Xen_语言 & 开发_李士窑_InfoQ精选文章