谁比较过 docker containers 和裸机的性能差距?

2017-09-28 13:17:53 +08:00
 eyp82

大概是什么级别? 应该要分不同的应用:

  1. 对 I/O 要求较高的(比如数据库)
  2. 对 I/O 要求一般, 但 CPU 要求比较高的

哪位做过比较测试的, 能否给分享一下 docker 跟裸机的性能有多大差距? 是 10-20%以内, 还是只有 50-60%, 还是更差? 我手头暂时没有比较贴近实际的应用, 单纯跑个 helloworld 感觉数据不太可信.

谢谢.

30114 次点击
所在节点    Docker
15 条回复
widewing
2017-09-28 13:22:37 +08:00
docker 又不是虚拟机,怎么会有这么大性能差距
eyp82
2017-09-28 13:32:30 +08:00
@widewing 那最好, 我唯一比较担心 I/O, 如果有人做过测试有具体的数据更好
zuolan
2017-09-28 13:42:34 +08:00
感觉会在 10%以内,担心 I/O 的话,直接去找联合挂载文件系统的性能差异的资料可能会靠谱些。
neoblackcap
2017-09-28 13:46:55 +08:00
docker 是进程级别的,其实跟一个进程没什么区别。CPU 的损耗应该比 KVM 还小。但是 I/O 就不清楚了,你可以自己做一下 benchmark
htfy96
2017-09-28 13:55:49 +08:00
选个好点的 io driver
aufs/devicemapper on raw block device/overlay2 都可以
bridge 自带的那个 NAT 效率很差
gclove
2017-09-28 14:10:03 +08:00
你要明白一点, 容器的功能不是 docker 提供的, 相关技术都是是 Linux 内核提供的

docker 只是一个容器的管理器而已。 正因为这样, Docker 不能离开 Linux 系统运行.


损耗的话, 理论上, 对 CPU 来说, 只有 1% ~3%, 内存也极小。
swulling
2017-09-28 14:16:50 +08:00
gclove
2017-09-28 14:20:27 +08:00
性能损耗最大的是网络,CPU, 内存, IO 都可以忽略不计
zjsxwc
2017-09-28 14:22:45 +08:00
docker 就是增强型的 chroot.

通过 chroot 跑程序和不用 chroot 跑程序,性能会有损耗?
rrfeng
2017-09-28 14:37:31 +08:00
CPU 基本不会有损失。

损失只出现在 I/O 上,包括网络 I/O 和文件系统 I/O。这两者就要看不同的实现了。

物理机上直接对网卡 hack 可以达到几乎无损失的网络,其他网络方式除非是 -host 模式都会有不同程度的损失,也是看方案。
文件系统同样,不同的实现性能损失不同。

但是对于 99% 的应用程序来说,根本不需要考虑这个损失……
qsnow6
2017-09-28 14:39:34 +08:00
docker 只是进程,近乎可以忽略损耗
paragon
2017-09-28 15:05:54 +08:00
快不快是由 cgroup 决定的~
tomczhen
2017-09-28 15:38:31 +08:00
IO 方面会有差异,毕竟过了一层实现。

“没有银弹”虽然是说复杂工程没有简单的解决方法,但是也可以推断出,单一技术方法无法独立解决复杂工程的所有问题。

选择技术方案时肯定要考虑代价,但是各家业务都不同,不自己根据自身业务做个方案测试评估如何能拿出可以有说服力的数据?

难道写 V2EX 网友提供?
eyp82
2017-09-28 22:54:21 +08:00
@tomczhen 谢谢,如果真是技术选型肯定要自己测的,但是测试前也要听听大家的经验之谈,不矛盾。兼听则明嘛。一言不合撸起袖子就干最后发现不对劲才可怕
FindHao
2017-12-13 16:54:42 +08:00
@swulling #7 这个评测 666 了。
ISPASS,CCF-C 级别的会。不过听学长说 gpgpusim 也是在这上面发的。
原来 docker 性能这么吊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/394313

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX