【问题标题】:Overlay network performance issues with docker swarm使用 docker swarm 覆盖网络性能问题
【发布时间】:2020-10-05 07:55:33
【问题描述】:

目前我们使用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。有什么办法可以优化吗?

【问题讨论】:

  • nginx在这里登录{"@timestamp":"2019-12-18T20:50:23+08:00","reqTime":"1.091","respTime":"1.091","connectTime":"1.002","headerTime":"1.091","uip":"xxx.xxx.xxx.xxx","fip":"192.168.200.80","upServer":"172.21.19.85:8080","host":"172.18.0.6","domain":"xx.xxx.com","method":"POST","uri":"/uri","args":"-","size":202,"referer":"-","agent":"Dalvik/2.1.0 (Linux; U; Android 8.0.0; FRD-AL10 Build/HUAWEIFRD-AL10)","reqId":"5ef0c29b77e2d5b232f0aae2d71c2ce7","status":"200"}

标签: docker nginx docker-swarm


【解决方案1】:
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

https://github.com/moby/moby/issues/35082

【讨论】:

    【解决方案2】:

    来自this comment 问题[SWARM] Very poor performance for ingress network with lots of parallel requests 中的这个滞后问题似乎已针对超过 5.4 的内核版本解决。

    (旁注:此内核是 Ubuntu 20.04 中使用的内核)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多