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

docker swarm 的 overlay 网络性能问题

  •  
  •   luger1990 · 2019-12-17 13:18:46 +08:00 · 7282 次点击
    这是一个创建于 1563 天前的主题,其中的信息可能已经有所发展或是发生改变。

    团队内没有用 k8s,此主题之讨论 docker swarm。

    目前是用 docker swarm 的 docker network create 创建一组 overlay 网络,然后用 docker service create 创建服务集群,并加入到上面提供的网络,nginx 也一样加入到上面的网络。nginx 的配置如下:

    location / {                                                
        resolver 127.0.0.11 ipv6=off;                  
        proxy_pass      http://docker_service_name:8080;                                               
    }
    

    通过 docker swarm 实现负载均衡和动态扩容。但是这里就有个问题,对于个别接口从日志看后端处理时间也就 20ms,但是 nginx 那一层日志看有 1.003S。请问有什么办法能优化吗?

    4 条回复    2020-04-15 11:11:06 +08:00
    monsterxx03
        1
    monsterxx03  
       2019-12-17 13:44:04 +08:00
    swarm 的 overlay 网络很慢, 1s 有点夸张了, create 的语句发出来看看, 有没有加 --opt encrypted? 这个很慢的.

    再排除 dns 的问题, proxy_pass 直接填 ip 试试.

    nginx 日志打详细点,看时间花在哪里了: https://www.nginx.com/blog/using-nginx-logging-for-application-performance-monitoring/
    luger1990
        2
    luger1990  
    OP
       2019-12-17 14:36:11 +08:00
    @monsterxx03 用你的方法输出日志试了试,看来主要是`upstream_connect_time` 这个时间比较长。并不是所有的都要 1S 是部分 但是也挺多的
    luger1990
        3
    luger1990  
    OP
       2020-04-15 11:10:22 +08:00   ❤️ 1
    解决问题了,具体可以参考 https://stackoverflow.com/questions/59392603/overlay-network-performance-issues-with-docker-swarm#59392603

    ```
    sudo nsenter --net=/var/run/docker/netns/{your_load_balancer} sysctl -w net.ipv4.vs.conn_reuse_mode=0
    sudo nsenter --net=/var/run/docker/netns/{your_load_balancer} sysctl -w net.ipv4.vs.expire_nodest_conn=1
    ```

    ```
    version: "3.7"
    services:
    core:
    image: nginx
    sysctls:
    - net.ipv4.vs.conn_reuse_mode=0
    - net.ipv4.vs.expire_nodest_conn=1
    ```
    luger1990
        4
    luger1990  
    OP
       2020-04-15 11:11:06 +08:00
    建议如果有足够的人力还是用 k8s,没必要尝试 swarm
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3962 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:21 · PVG 18:21 · LAX 03:21 · JFK 06:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.