大概是什么级别? 应该要分不同的应用:
哪位做过比较测试的, 能否给分享一下 docker 跟裸机的性能有多大差距? 是 10-20%以内, 还是只有 50-60%, 还是更差? 我手头暂时没有比较贴近实际的应用, 单纯跑个 helloworld 感觉数据不太可信.
谢谢.
1
widewing 2017-09-28 13:22:37 +08:00 via Android 1
docker 又不是虚拟机,怎么会有这么大性能差距
|
3
zuolan 2017-09-28 13:42:34 +08:00
感觉会在 10%以内,担心 I/O 的话,直接去找联合挂载文件系统的性能差异的资料可能会靠谱些。
|
4
neoblackcap 2017-09-28 13:46:55 +08:00
docker 是进程级别的,其实跟一个进程没什么区别。CPU 的损耗应该比 KVM 还小。但是 I/O 就不清楚了,你可以自己做一下 benchmark
|
5
htfy96 2017-09-28 13:55:49 +08:00 1
选个好点的 io driver
aufs/devicemapper on raw block device/overlay2 都可以 bridge 自带的那个 NAT 效率很差 |
6
gclove 2017-09-28 14:10:03 +08:00
你要明白一点, 容器的功能不是 docker 提供的, 相关技术都是是 Linux 内核提供的
docker 只是一个容器的管理器而已。 正因为这样, Docker 不能离开 Linux 系统运行. 损耗的话, 理论上, 对 CPU 来说, 只有 1% ~3%, 内存也极小。 |
7
swulling 2017-09-28 14:16:50 +08:00 4
|
8
gclove 2017-09-28 14:20:27 +08:00
性能损耗最大的是网络,CPU, 内存, IO 都可以忽略不计
|
9
zjsxwc 2017-09-28 14:22:45 +08:00
docker 就是增强型的 chroot.
通过 chroot 跑程序和不用 chroot 跑程序,性能会有损耗? |
10
rrfeng 2017-09-28 14:37:31 +08:00
CPU 基本不会有损失。
损失只出现在 I/O 上,包括网络 I/O 和文件系统 I/O。这两者就要看不同的实现了。 物理机上直接对网卡 hack 可以达到几乎无损失的网络,其他网络方式除非是 -host 模式都会有不同程度的损失,也是看方案。 文件系统同样,不同的实现性能损失不同。 但是对于 99% 的应用程序来说,根本不需要考虑这个损失…… |
11
qsnow6 2017-09-28 14:39:34 +08:00
docker 只是进程,近乎可以忽略损耗
|
12
paragon 2017-09-28 15:05:54 +08:00
快不快是由 cgroup 决定的~
|
13
tomczhen 2017-09-28 15:38:31 +08:00 1
IO 方面会有差异,毕竟过了一层实现。
“没有银弹”虽然是说复杂工程没有简单的解决方法,但是也可以推断出,单一技术方法无法独立解决复杂工程的所有问题。 选择技术方案时肯定要考虑代价,但是各家业务都不同,不自己根据自身业务做个方案测试评估如何能拿出可以有说服力的数据? 难道写 V2EX 网友提供? |
14
eyp82 OP @tomczhen 谢谢,如果真是技术选型肯定要自己测的,但是测试前也要听听大家的经验之谈,不矛盾。兼听则明嘛。一言不合撸起袖子就干最后发现不对劲才可怕
|
15
FindHao 2017-12-13 16:54:42 +08:00
|