700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > linux tcp 异常断开连接 TCP 异常断开

linux tcp 异常断开连接 TCP 异常断开

时间:2020-06-25 08:34:00

相关推荐

linux tcp 异常断开连接 TCP 异常断开

首先感谢你这么详细的提问!

如果业务每个请求处理时间都足够快,支持8万设备在线是没问题的。

但是如果业务有一点慢,比如数据库操作一次需要0.05秒,假设8万设备每秒产生5000个操作数据库的请求,那么设备每秒产生的请求需要服务端耗时25秒才能处理完(多进程的情况下可以缓解),这样请求不断累积会出现业务延迟越来越严重。如果客户端设备有做超时断开操作,那么可能会导致大面积连接断开重连。往坏一点说,如果某些请求处理更慢些,例如慢sql 访问外部存储或者curl超时阻塞了几十秒,那个情况会变得更差。所以保证每个请求都能极快的处理是保持上万并发连接的关键。

目前总结的客户端连接断开的原因大概有以下几个方面:

1、设备所处环境网络不稳定

2、设备与服务器间没有用心跳来维持连接。心跳间隔最好小于60秒,大于60秒的心跳无法有效维持连接,有些可能需要的心跳间隔更小。

3、没有安装event扩展,导致单个进程无法维持超过1024个连接,多余的连接会有超时断开的情况

4、没有按照手册优化linux内核

例如内核进程打开文件数限制了单个进程只能维持1024个连接,多余连接超时断开

例如内核同时打开了net.ipv4.tcp_tw_recycle 和 net.ipv4.timestamp 导致处于nat网络的客户端连接超时

例如内核防火墙跟踪表 (filter.nf_conntrack_max)大小设置太低,无法应对大量连接,导致客户端连接超时或者断开

5、业务bug导致一些连接被错误的断开

6、设备bug导致连接断开

根据描述,白天设备连接断开比较频繁,夜晚比较稳定,我有点怀疑是由于白天很多用户活动与不同的环境导致,例如在电梯 地铁 地下室等环境网络比较差,连接断开。等到了信号好的地方又重新连接。

而夜里时大家都在睡觉,不会出现网络环境频繁变更的情况,自然比较稳定。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。