BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Docker容器在VMware VSphere中性能测试

| 作者 张天雷 关注 4 他的粉丝 发布于 2014年11月1日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

2014年8月份召开的VMworld 2014会议上,VMware宣布将于Docker等合作共同建立一个项目来研究如何在VMware虚拟技术上使用Docker,使得Docker的发展步入一个新的高峰。

然而就在不久之前,IBM刊文质疑了在虚拟机上运行容器的实践方法。如果是这样,VMware公司为什么要做出支持Docker容器这么大胆的举措呢?

事实是,VMware公司进行了与之前报道类似的实验。实验结果说明,虚拟机环境下运行Docker容器,其性能损失是完全可以接受的,有力的反驳了之前的言论。根据VMware公司所公布的在vSphere虚拟机和直接在服务器中运行Docker容器的结果,可以看出:对于绝大部分的微测试集和Redis测试,vSphere表现出近乎和真实机器同样的性能,而且平均额外开销小于5%;最重要的是,在vSphere虚拟机的Docker容器中运行应用程序的额外开销和在真实服务器上的操作系统上运行容器的额外开销基本相等。

VMware公司的实验中,所采用的实验平台、测试集信息以及最终实验结果的详细信息如下。实验平台包括了真实机器(直接运行Ubuntu和CentOS的Linux操作系统)、vSphere虚拟机(在与真实机器同样条件的操作系统中运行即将发布的vSphere)以及运行Docker的真实机器和虚拟机等4中情况。实验中采用包括LINPACK等4个微测试集以及Redis等真实负载。

针对各个测试集的性能结果如下:

  • LINPACK。对于45K的问题大小,虚拟化的额外开销基本可以忽略。对于更大的问题,由于内置页表的问题,硬件虚拟化会不可避免的引入相应的额外开销。但是,在虚拟机的Docker容器中运行应用程序和直接在虚拟机中运行并不会引入额外的开销。
  • STREAM。针对所有的操作,虚拟机会引入大约2-3%的额外开销。在真实机器上运行的Docker容器所带来的1-2%的额外开销可能处于噪声边缘,基本可以忽略。
  • FIO。对于随机读操作,虚拟机中的最大可接收IOPS相比于真实机器要小2%左右。但是,二者的随机写操作性能基本相同。总的来讲,Docker容器不会对随机读和随机写造成明显的性能损失。
  • Netperf。对于所有的实验平台,网络的吞吐量是相同的。在延迟测试方面,使用桥接NAT功能时,Docker容器会引入9-10微秒的额外延迟;如果直接使用宿主机网络,Docker容器基本上不会引入额外的延迟时间。
  • Redis。在虚拟机上运行Redis会比真实操作系统中运行性能稍有下降。但是,使用宿主机网络运行Docker容器时,无论Docker运行在真实机器还是虚拟机中,实验性能都跟直接运行在真实机器中基本相同。

基于以上的实验结果,VMware公司指出虚拟化会只会引入大约2%到4%的性能损失。在Docker容器中运行像Redis这样的应用程序,其性能是完全可以接受的,而其在安全、管理等方面的优势使得Docker容器成为虚拟化方面的推荐选择。


感谢郭蕾对本文的审校。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

WMware 这么明显的拼写错误 by Chen Hao

无语

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT