开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

Docker 容器在 VMware VSphere 中性能测试

  • 2014-10-31
  • 本文字数:1220 字

    阅读完需:约 4 分钟

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

2014-10-31 08:015071
用户头像

发布了 268 篇内容, 共 125.3 次阅读, 收获喜欢 24 次。

关注

评论

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

Vue-14-列表渲染v-for

Python研究所

6月月更

GNU/Linux知识库(2)- 安装和文件系统

冯亮

Linux DevOps GNU

Prometheus、Grafana安装配置linux服务器监控dashboard

橙子猿

golang Prometheus #Grafana

力扣每日一练之数组下篇Day3

京与旧铺

6月月更

架构训练营模块四作业

融冰

DOM核心——Document类型

大熊G

JavaScript 前端 6月月更

Linux开发_网络编程基础(1)

DS小龙哥

6月月更

如何为 SAP 电商云每个不同的 JavaScript Storefront 分别配置 API endpoint

汪子熙

SAP Hybris commerce 电商云 6月月更

【mycat】mycat在windows环境下的安装和启动

迷彩

架构 mycat 数据库中间件 MySQL 数据库 6月月更

网上教学 助力战疫 | 社区征文

yu

原创 原创保护 初夏征文

简约而不简单的Kanban方法

Bruce Talk

Kanban 敏捷开发 Agile

千万学生管理系统试卷存储方案

intelamd

连续居家办公68天后——我的2022居家办公所感所想| 社区征文

No Silver Bullet

居家办公 6月月更 初夏征文 心得体会

SDN系统方法 | 8. 网络虚拟化

俞凡

架构 网络 sdn SDN系统方法

2022 年 Java 行业分析报告

看山

Java 行业报告

Android MediaPlayer音频播放器详解

yechaoa

android 6月月更 MediaPlayer

vue全局守卫

小恺

6月月更

关于分布式系统一致性

Joseph295

☕️Java11 中基于嵌套关系的访问控制优化

看山

Java Java11

【愚公系列】2022年06月 通用职责分配原则(七)-纯虚构原则

愚公搬代码

6月月更

详解python的运行方式

左手の明天

Python 运行原理

架构实战营|模块4

KDA

#架构实战营

Switch 块、Switch 表达式、Switch 模式匹配,越来越好用的 Switch

看山

Java Switch

华为云图引擎服务

程思扬

华为 华为云 云开发

《网络是怎么样连接的》读书笔记 - 认识网络基础概念(一)

懒时小窝

网络编程

spring4.1.8扩展实战之八:Import注解

程序员欣宸

Java spring Spring Framework 6月月更

千万级学生管理系统的考试试卷存储方案

joak

列表视图——基于函数的视图 Django

海拥(haiyong.site)

Python django 6月月更

《清单革命》:如何忙而不乱?

郭明

读书笔记

周末来学集合论

坚果

6月月更

千万级学生管理系统考卷模块存储架构设计

泋清

#架构训练营

Docker容器在VMware VSphere中性能测试_语言 & 开发_张天雷_InfoQ精选文章