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

你们的应用都有放到 Docker 里吗,发现有点性能问题

  •  
  •   rupert · 2016-12-07 17:23:29 +08:00 · 6352 次点击
    这是一个创建于 2909 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近几天折腾 docker,好不容易把 PhoenixFramework 好好运行在 container 里,却发现 ttfb waiting 时间比不用 docker 运行平均多 250ms ,要是放到生产环境这个能忍?

    是不是 docker 还不够成熟还是我姿势不对?

    第 1 条附言  ·  2016-12-07 23:50:50 +08:00

    加下 docker info:

    Containers: 2
     Running: 2
     Paused: 0
     Stopped: 0
    Images: 4
    Server Version: 1.12.3
    Storage Driver: devicemapper
     Pool Name: docker-253:1-24834-pool
     Pool Blocksize: 65.54 kB
     Base Device Size: 10.74 GB
     Backing Filesystem: xfs
     Data file: /dev/loop0
     Metadata file: /dev/loop1
     Data Space Used: 592.4 MB
     Data Space Total: 107.4 GB
     Data Space Available: 18.28 GB
     Metadata Space Used: 1.503 MB
     Metadata Space Total: 2.147 GB
     Metadata Space Available: 2.146 GB
     Thin Pool Minimum Free Space: 10.74 GB
     Udev Sync Supported: true
     Deferred Removal Enabled: false
     Deferred Deletion Enabled: false
     Deferred Deleted Device Count: 0
     Data loop file: /var/lib/docker/devicemapper/devicemapper/data
     WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
     Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
     Library Version: 1.02.107-RHEL7 (2016-06-09)
    Logging Driver: json-file
    Cgroup Driver: cgroupfs
    Plugins:
     Volume: local
     Network: bridge null host overlay
    Swarm: inactive
    Runtimes: runc
    Default Runtime: runc
    Security Options: seccomp
    Kernel Version: 3.10.0-327.el7.x86_64
    Operating System: CentOS Linux 7 (Core)
    OSType: linux
    Architecture: x86_64
    CPUs: 1
    Total Memory: 993.1 MiB
    Name: VM_46_76_centos
    ID: LMQR:K5WQ:NKCQ:DIEQ:X6HQ:3YJV:ZE7A:5QYH:Z4D2:L5R3:D2TE:RZKP
    Docker Root Dir: /var/lib/docker
    Debug Mode (client): false
    Debug Mode (server): false
    Registry: https://index.docker.io/v1/
    WARNING: bridge-nf-call-iptables is disabled
    WARNING: bridge-nf-call-ip6tables is disabled
    Insecure Registries:
     127.0.0.0/8
    
    10 条回复    2016-12-30 16:08:13 +08:00
    ryd994
        1
    ryd994  
       2016-12-07 18:23:55 +08:00 via Android
    理论上 CPU 性能损失机会为零
    IO 性能取决于储存驱动,对只读的不会太大
    先说说你什么环境什么程序吧,不说细节谁知道呢
    Windows/Mac 装 docker 然后来吐槽 docker 性能的,我见得多了
    ryd994
        2
    ryd994  
       2016-12-07 18:24:04 +08:00 via Android
    几乎
    rupert
        3
    rupert  
    OP
       2016-12-07 19:30:05 +08:00 via iPhone
    @ryd994 mac 和 qcloud 的 centos 都有试过
    用 nodejs 输出 hello world 没问题,不知道要注意什么地方
    tomczhen
        4
    tomczhen  
       2016-12-07 19:52:41 +08:00 via Android
    先用 net=host 排除掉 nat 的影响
    最好能说明下环境和 docker info 。
    当然,我觉得楼主用不用 docker 跟我也没多大关系:doge:
    rupert
        5
    rupert  
    OP
       2016-12-07 23:49:30 +08:00
    @tomczhen 感谢回复
    试了 host 模式,没变化。 之前试了个 nodejs 的 hello world ,就是为了排除 network 的影响。
    duola
        6
    duola  
       2016-12-08 00:59:52 +08:00
    centos 对 Docker 有影响,性能会差很多,建议用 ubuntu 。
    realityone
        7
    realityone  
       2016-12-08 01:02:45 +08:00 via iPhone   ❤️ 1
    别用 loop lvm
    用 host 网络来测
    rupert
        8
    rupert  
    OP
       2016-12-08 04:32:33 +08:00   ❤️ 1
    找到主要原因了,因为我启动的是 phoenix 的 dev 模式,会有一些监控 reload, compile
    不过在 dev 模式,在 container 里面还是比外面慢了点(外面 170ms ), 还能接受,生产环境 ok 就行
    zonghua
        9
    zonghua  
       2016-12-08 09:55:26 +08:00
    感觉写 Dockerfile 就是盲写啊,都是写各种 RUN ADD
    jsou
        10
    jsou  
       2016-12-30 16:08:13 +08:00
    centos loop lvm 的问题官方文档说影响很大。而且磁盘空间不释放
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2969 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:40 · PVG 22:40 · LAX 06:40 · JFK 09:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.