TCP 堆栈调整,(TIME_WAIT) - python 进程忽略 sysctl 设置?

TCP 堆栈调整,(TIME_WAIT) - python 进程忽略 sysctl 设置?

我正在尝试调整各种 TCP 设置以实现大量传出客户端连接。我已将以下内容放入 Ubuntu 16.04 上的 /etc/sysctl.conf 中。

net.ipv4.ip_local_port_range = 18000 65535 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 3

我已经应用了它们,sysctl -p然后我使用 netcat 与我的一台服务器建立了新连接,然后终止了它:

nc 35.158.221.XXX 22

然后我使用以下命令检查了 netstat:

netstat -on | grep TIME_WAIT | less

在每种情况下,连接都会在 3 秒内正确删除。

现在问题是:

在上面之后不久,我启动了一个 python 脚本,其中有很多线程产生传出的 http 连接。然而,在此脚本中,连接的 TIME_WAIT 状态在默认的 60 秒后仍然到期。

1

为什么会发生这种情况并且 python 的连接忽略内核设置?这怎么可能呢?为什么该设置没有应用于此过程?我是否忘记刷新一些缓存或其他东西?

相关内容