【容器技术】在裸机与虚拟机上运行容器:性能和优点
【容器技术】在裸机与虚拟机上运行容器:性能和优点
根据最近的研究,Docker正在像野火一样蔓延,特别是在企业中,它的采用率从2015年的13%上升到了65%以上;另有35%的公司计划使用Docker。根据这些报告,容器采用的主要驱动因素是需要提高研发团队的效率和速度,以及容器是微服务的基本组成部分。
有了这些巨大的好处,问容器是否要杀死虚拟机是很自然的。这个争论引起了一个相对平凡的问题,为什么不直接在裸机上运行容器呢?在这篇文章中,我们不会认为你需要转向裸机。实际上,我们认为大型企业环境应该有虚拟化服务器,裸机物理主机和容器的组合。
作为研究这篇文章的副产品,我们很高兴与大家分享一些测试的结果,这些测试在裸机上运行容器化的工作负载时,与在虚拟机上运行容器化工作负载相比,性能显着提高。我们也将讨论这两个选项的好处和机会。
容器的好处
容器为虚拟机(VM)提供了一个轻量级的替代方案。一个容器将你的应用程序从你运行的任何地方隔离开来。你只安装你需要运行你的应用程序的东西,而不是更多。容器允许开发人员使用相同的开发环境和堆栈。您也可以直接在容器中开发,因为它可以为您提供独立的网络堆栈和存储,而无需构建和运行虚拟机。另外,容器有助于持续集成和交付过程,并鼓励使用无状态设计。
虚拟机也可以像容器一样使用,但虚拟机有几个显着的缺点。最关键的是虚拟化有一个开销,无论部署的guest虚拟机的操作系统(OS)有多精简,在建立新的虚拟机时仍然需要完全复制该操作系统及其整个配置。容器运行自己的初始化进程,文件系统和网络堆栈,在虚拟机或裸机主机操作系统之上进行虚拟化。就其性质而言,容器使用的内存少于虚拟机。这是由于它们固有地共享OS内核,并且在大多数情况下它们也使用相同的相同的库。
要了解容器和虚拟化带来的好处和挑战,请观看本次网络研讨会。
EC2 m4.2xlarge实例,它具有32 GB的RAM和8vCPU。我们对CPU型号为Intel Core i7-3770,3.40GHz速度(和8个CPU核心),32 GB RAM和SSD磁盘的裸机使用相同规格。在我们的测试中,我们测量了文件系统和CPU操作的性能。
对于前两种类型的测试,我们使用已经构建的容器来运行计算和文件系统写入性能的简单基准测试。一旦部署,我们使用以下命令:docker run -d -m 256m -name = container-benchmark-vm simple-container-benchmarks
如下所示,与在CPU和IO操作中在VM上运行相同的工作负载相比,裸机上运行的容器性能提高了25%-30%。从下面的结果示例中可以看出,VM上的复制操作速率大约为125MB / s,而大约为165MB / s。虚拟机上的数据处理速度几乎是13MB / s,而裸机上的速度是19MB / s
----------
文件系统写入性能
----------
1073741824字节(1.1 GB)复制,8.65288 s,124 MB / s
1073741824字节(1.1 GB)复制,8.44858 s,127 MB / s
1073741824字节(1.1 GB)复制,8.32321 s,129 MB / s
1073741824字节(1.1 GB)复制,8.48442 s,127 MB / s
1073741824字节(1.1 GB)复制,8.47191 s,127 MB / s
1073741824字节(1.1 GB)复制,8.43977 s,127 MB / s
1073741824字节(1.1 GB)复制,8.48138 s,127 MB / s
1073741824字节(1.1 GB)复制,8.45923 s,127 MB / s
1073741824字节(1.1 GB)复制,8.47802 s,127 MB / s
1073741824字节(1.1 GB)复制,8.54732秒,126 MB /秒
----------
CPU性能
----------
268435456字节(268 MB)复制,21.0134秒,12.8 MB /秒
268435456字节(268 MB)复制,20.9979秒,12.8 MB /秒
268435456字节(268 MB)复制,20.9207 s,12.8 MB / s
268435456字节(268 MB)复制,21.0908秒,12.7 MB /秒
268435456字节(268 MB)复制,21.0547秒,12.7 MB /秒
268435456字节(268 MB)复制,20.9105 s,12.8 MB / s
268435456字节(268 MB)复制,20.8068秒,12.9 MB /秒
268435456字节(268 MB)复制,20.8462秒,12.9 MB /秒
268435456字节(268 MB)复制,20.9656秒,12.8 MB /秒
268435456字节(268 MB)复制,20.8076秒,12.9 MB /秒
VM的基准测试结果
在裸机上运行相同的命令时,文件系统和CPU在相同数据量下的性能显示如下:
----------
FS写入性能
----------
1073741824字节(1.1 GB)复制,6.63242 s,162 MB / s
1073741824字节(1.1 GB)复制,6.55013 s,164 MB / s
1073741824字节(1.1 GB)复制,6.6611 s,161 MB / s
1073741824字节(1.1 GB)复制,6.42406秒,167 MB /秒
1073741824字节(1.1 GB)复制,6.88436 s,156 MB / s
1073741824字节(1.1 GB)复制,6.39726 s,168 MB / s
1073741824字节(1.1 GB)复制,6.52477 s,165 MB / s
1073741824字节(1.1 GB)复制,6.61627 s,162 MB / s
1073741824字节(1.1 GB)复制,6.95134 s,154 MB / s
1073741824字节(1.1 GB)复制,6.56434 s,164 MB / s
----------
文件系统性能
----------
268435456字节(268 MB),13.789秒,19.5 MB /秒
268435456字节(268 MB),14.1166秒,19.0 MB /秒
268435456字节(268 MB),13.6356秒,19.7 MB /秒
268435456字节(268 MB)复制,13.9786秒,19.2 MB /秒
268435456字节(268 MB)复制,13.6349 s,19.7 MB / s
268435456字节(268 MB)复制,14.397 s,18.6 MB / s
268435456字节(268 MB),13.7385秒,19.5 MB /秒
268435456字节(268 MB)复制,14.5623 s,18.4 MB / s
268435456字节(268 MB)复制,14.6485 s,18.3 MB / s
268435456字节(268 MB)复制,13.9463秒,19.2 MB /秒
裸机的基准测试结果
在另一份运行相同测试的基准测试报告中,与在虚拟机上运行Docker容器相比,在裸机上运行Docker容器的性能差异达到了7x-9x。
有关容器安排,协调和管理的问题?在这里发现12 Kubernetes的关键功能。
- 比在虚拟机上运行Kubernetes低大约3倍。我们还可以看到,在几种情况下,与裸机相比,在虚拟机上运行时,CPU利用率可能相当高。
看看这些结果,毫无疑问,如果你的系统是敏感的,例如,页面加载时间或Web服务响应时间,在裸机上运行你的容器是值得考虑的。
需要直接访问物理硬件的应用程序和工作负载(如企业数据库和计算密集型应用程序)可以从裸机云的性能中大大受益。上述结果非常重要,例如运行分析和BI流程时,这会转化为更快的结果和更高的数据处理吞吐量。这也适用于机器学习(ML)算法,当需要大量的数据来训练ML模型时需要大量的计算。
容器监控是否重要?在这里找到。10 Pro,以及其他Windows Server版本,比如2012或者甚至2008,都不被支持。当您需要升级和配置操作系统时,这可能会使裸机服务器很痛苦。
另一方面,单租户裸机服务器可以为受到合规措施限制的组织提供更好的选择,这可能需要严格的数据安全和隐私控制。
最后的注意
在一天结束的时候,每个IT组织都应该能够轻松地将资源与工作负载进行混合和匹配。但是说起来容易做起来难。企业应该寻找支持与容器并行运行虚拟机的云解决方案,并且能够创建混合云环境,从而轻松弥合本地企业与使用虚拟化,可扩展的公共云环境之间的差距。
谢谢大家关注,转发,点赞。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~