在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
总之,没有。
当您重新启动服务时,必须终止持有打开的套接字文件描述符的进程。 假设这些是TCP会话,这意味着在服务重新启动后,TCP会话必须完成(FIN)并build立新的会话(SYN),并且新的进程再次在套接字上侦听。
为什么你需要重新启动服务? 你不应该。 解决这个问题,你的问题就会消失。