我设计的服务器加入了keepalive选项的支持,这个保活机制在内网环境测试是OK的。
前两天在生产环境,出现了有几个连接的保活没起作用的情况,client机器重启后,server端的socket一直没有断开,现在怀疑是和keepalive设置的值有关,以下是我的设置:net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_time = 300这几个选项的配置有关。
目前解决的办法是在服务器上设置了个命令,可以向所有连接发测试包,如果客户端重启了,
回收到RST包,之后socket会断开。
keepalive选项有机会还要在生产环境测试下,挺想不通的:)
前两天在生产环境,出现了有几个连接的保活没起作用的情况,client机器重启后,server端的socket一直没有断开,现在怀疑是和keepalive设置的值有关,以下是我的设置:net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_time = 300这几个选项的配置有关。
目前解决的办法是在服务器上设置了个命令,可以向所有连接发测试包,如果客户端重启了,
回收到RST包,之后socket会断开。
keepalive选项有机会还要在生产环境测试下,挺想不通的:)