V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eyp82
V2EX  ›  Docker

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

  •  
  •   eyp82 · 2017-09-28 13:17:53 +08:00 · 30045 次点击
    这是一个创建于 2617 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    谢谢.

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

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


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

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

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

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

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

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

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

    难道写 V2EX 网友提供?
    eyp82
        14
    eyp82  
    OP
       2017-09-28 22:54:21 +08:00 via iPhone
    @tomczhen 谢谢,如果真是技术选型肯定要自己测的,但是测试前也要听听大家的经验之谈,不矛盾。兼听则明嘛。一言不合撸起袖子就干最后发现不对劲才可怕
    FindHao
        15
    FindHao  
       2017-12-13 16:54:42 +08:00
    @swulling #7 这个评测 666 了。
    ISPASS,CCF-C 级别的会。不过听学长说 gpgpusim 也是在这上面发的。
    原来 docker 性能这么吊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1394 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:32 · PVG 01:32 · LAX 09:32 · JFK 12:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.