部署 window10 docker 网络延迟波动超级大[有偿]

186 天前
 Tdy95

不堪 docker 折磨,如能帮忙远程解决愿意支付 500 元 酬劳

环境

网络环境:内网环境,分配了固定 IP ,可访问外网。IP: 20.32.81.66 网关:20.32.81.254 DNS:20.32.81.254

部署环境:window 10 PC ,使用 docker 最新版部署。服务都是内网调用本地 localhost 的

网络拓扑图

               外网
                |
            主交换机
                |
  +-------------+-------------+
  |             |             |
其它服务       其它服务        交换机
  |             |             |
  |             |       +-----+-----+
  |             |       |           |
  |             |     另外服务        PC

现象

发现网络波动和容器相关,偶尔某个容器的网络延迟特别大,我部署了一个 Python 的基础 get 接口,正常请求是 2-5ms ,但是某天就会 3000ms 的延迟出现。

wsl2 配置:

[wsl2]
memory=24GB
processors=8
swap=8GB
localhostForwarding=true

# 网络优化参数
kernelCommandLine=net.ipv4.tcp_keepalive_time=20 net.ipv4.tcp_keepalive_intvl=10 net.ipv4.tcp_keepalive_probes=5 net.core.somaxconn=65535 net.ipv4.tcp_max_syn_backlog=16384 net.ipv4.tcp_fin_timeout=15 net.ipv4.tcp_tw_reuse=1 net.core.netdev_max_backlog=16384 net.ipv4.ip_local_port_range=1024 65535 net.ipv4.tcp_rmem=4096 12582912 16777216 net.ipv4.tcp_wmem=4096 12582912 16777216 net.ipv4.tcp_mtu_probing=1

guiApplications=true
# 移除嵌套虚拟化设置
swapFile=D:\\wsl-swap.vhdx
# 移除不支持的选项
networkingMode=NAT

docker 配置:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "dns": [
    "20.32.81.254"
  ],
  "experimental": false,
  "log-driver": "json-file",
  "mtu": 1500,
  "registry-mirrors": [
    "https://dockerpull.cn"
  ]
}
2424 次点击
所在节点    程序员
15 条回复
flyqie
186 天前
这种场景不建议用 wsl2

你用 hyperv 直接开 vm 或者换 vmware/vbox 不好吗?
flyqie
186 天前
@flyqie #1

没记错的话 wsl2 实现上有蛮多问题的?
Kinnice
186 天前
调用使用 ip
Tdy95
186 天前
@flyqie #2 好的我去了解一下看看,docker 负载还使用了 srs 有一路流媒体,其余容器服务大概有 10 个左右。
Tdy95
186 天前
@Kinnice 使用了宿主机 IP 去访问,20.32.81.66 也出现了网络波动的情况 T T
billbob
186 天前
wsl 网络设置 mirrored wsl 的根据自己的情况配置>

windows 删除那些 视频软件 .

将 windows 更新调到夜晚执行

windows 影响网络因素太多了.

还有看看机子上的软件有没有占网,以及一些软件装驱动
billbob
186 天前
还有你 wsl ubuntu 里面配置.
lait123
186 天前
是不是路由器开了 ipv6? 把 ipv6 关了试试....我之前遇到过 ipv6 的问题 我本机访问 docker 接口经常 5000ms 或者 10000ms. 访问以后第二次会恢复毫秒级 过一段时间重新访问第一次又会 5000ms.
laminux29
186 天前
给专业人士的建议:

docker 原生于 Linux 平台,别用 Windows 去跑 docker 。

想玩 Linux ,请用物理机直接安装 Linux ,别用 Windows 的 WSL 、WSL 2 这些不伦不类的玩意。

虚拟化,也别用什么 Hyper-V 玩具,请用 VMware ESXi 、PVE 、KVM 这类专业软件。

不然你会遇到一大堆乱七八糟的问题,去搜索还不一定有结果。
wnpllrzodiac
186 天前
上 11 试试,11 对 wsl 有更新。wsl2 应该不算太差了。接近原生了
yuan1028
186 天前
可以看看波动的时候有没有很高的 IO
Knights
186 天前
win10 装 Docker-desktop 配合 wsl2
yinmin
186 天前
要稳定,推荐 hyper-v+debian/ubuntu+docker ce ,这种架构是可以稳定跑生产的。另外,hyper-v 跑 linux 的性能还是蛮好的,除了比竞品少点 gpu 、usb 外设等支持。
flyqie
186 天前
@laminux29 #9

hyperv 跑 linux 虽然没那么有优势但也不是玩具。
hwdq0012
185 天前
win11 + wsl + docker, 然后设置 docker 用桥接网络是不是会好点,单独一个物理网卡给 wsl 用, docker 运行在 wsl 里

https://nocanstillbb.github.io/post/wsl2 设置网络桥接到物理网卡/

win11 和 win10 都能设置桥接网络,不过 win10 好像比较不好使,可以试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1116612

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX