防止重新启动服务时 TCP 连接超时

防止重新启动服务时 TCP 连接超时

在 Ubuntu 14.04 上,应用程序以每秒 1 次到每分钟 1 次的间隔与客户端通信。但是,服务必须定期重新启动,这会导致所有连接断开/超时。服务重新启动仅需大约 10-15 秒。

是否可以调整系统使得这些连接在服务重新启动时不会超时/断开?

$ ulimit -n
1048576
$ cat /proc/sys/net/ipv4/tcp_fin_timeout
60
$ cat /proc/sys/net/ipv4/tcp_tw_recycle
0
$ cat /proc/sys/net/ipv4/tcp_tw_reuse
0

答案1

简而言之,没有。

重新启动服务时,必须终止保持套接字文件描述符打开的进程。假设这些是 TCP 会话,则意味着在服务重新启动并且新进程再次监听套接字后,必须完成 TCP 会话 (FIN) 并建立新会话 (SYN)。

为什么需要重启服务?不需要。解决这个问题,问题就解决了。

相关内容