写点什么

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:015138
用户头像

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

关注

评论

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

直呼内行!阿里大佬离职带出内网专属“高并发系统设计”学习笔记

编程 程序员 消息队列 高并发系统

一站式智能化是采购数字化的大趋势

BeeWorks

网易云信亮相 LiveVideoStackCon 2021,解构自研大规模传输网 WE-CAN

网易云信

通信云 传输协议

React Native Android 源码框架浅析(主流程及 Java 与 JS 双边通信)

android 程序员 移动开发

【等保小知识】等保与关保两者之间有啥区别?

行云管家

网络安全 等级保护 分保 关保

react-native Navigation导航器,kotlin协程使用

android 程序员 移动开发

React Native Android混合开发实战教程(1),flutter瀑布流

android 程序员 移动开发

MVVM系列之一:Lifecycle,面试竟然被这31道Android基础题难倒了

android 程序员 移动开发

「元宇宙」赛道,除了脸书,微软也来了

BeeWorks

MVVM系列之二:LiveData,android程序开发教程

android 程序员 移动开发

实验室信息系统的主要功能及作用

低代码小观

企业管理 管理系统 LIMS实验室信息管理系统 信息管理系统 实验室

OkHttp 3,安卓移动开发大作业

android 程序员 移动开发

OOM问题原理解析(二),移动端开发技术

android 程序员 移动开发

毕业总结和毕业设计

cherrycheek

python3如何安装MySQLdb库

YUKI0506

Python3 mysqldb

MotionLayout_ 打开动画新世界大门 (part II),android插件化原理

android 程序员 移动开发

OkHttp 断点上传的“基操”(1),完美讲解内存缓存LruCache实现原理

android 程序员 移动开发

OkHttp3源码详解之拦截器(四),计算机应届毕业生面试题

android 程序员 移动开发

React Native Android混合开发实战教程,Android入门你值得拥有

android 程序员 移动开发

Okhttp的缓存机制,原理讲解

android 程序员 移动开发

React Native 与 嵌入Android原生与Activity页面互相跳转

android 程序员 移动开发

具有中国特色的堡垒机到底有用吗?有什么用?

行云管家

网络安全 信息安全 数据安全 堡垒机

RecyclerView 事件分发原理实战分析,历经30天

android 程序员 移动开发

Java线程安全ReentrantLock

FunTester

Java 性能测试 线程安全 测试开发 FunTester

Native开发工具之CPU 和架构(三),学习Android开发的步骤,

android 程序员 移动开发

QQ音乐Android编译提速之路,腾讯T2大牛亲自讲解

android 程序员 移动开发

OkHttp 断点上传的“基操”,算法题+JVM

android 程序员 移动开发

分享 | 一文了解 PG PITR 即时恢复

RadonDB

数据库 postgresql RadonDB

OkHttp流程分析,音视频编解码技术

android 程序员 移动开发

OKio源码分析(1)six sy007 情感导师,android面试题2019

android 程序员 移动开发

React Native 与 嵌入Android原生与Activity页面互相跳转(1)

android 程序员 移动开发

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