昨日排查的一个问题,可以参考
起因:某业务集群作为消费者请求大数据服务器,开发环境正常,测试环境存在部分节点无法接收远程http调用的返回结果,消费端频繁报pending 的错误,telnet 8080端口访问不通
排查过程:生产端未收到日志,未开启防火墙等任何网络限制服务,物理网络部署正常,所有节点在同一个大集群里,使用同一个交换机接口,网络是通的。
原因:
当前大数据虚拟机100.19.9.xx开启了tcp_tw_recycle,timewait的连接强制回收,并会检查后续收包的时间戳,服务器就把带了“倒退”的时间戳、或者60秒之内时间戳的包当作是recycle的tw连接的重传数据,不是新的请求,于是丢掉不回包。导致主动发起的telnet的tcp概率建立不起来。
目前操作关闭服务器的tcp_tw_recycle机制后,网络丢包问题不再重现,此操作可能导致存在大量待回收的连接,占用系统资源。
之所以生产者和消费者存在时间差,是因为生产者和消费者内部之间有NTP时间同步,但两者之间没有,也不可能有时间同步,因为实际生产环境做不到要求二者时间一致,所以集群中不会设置全局NTP。
起因:某业务集群作为消费者请求大数据服务器,开发环境正常,测试环境存在部分节点无法接收远程http调用的返回结果,消费端频繁报pending 的错误,telnet 8080端口访问不通
排查过程:生产端未收到日志,未开启防火墙等任何网络限制服务,物理网络部署正常,所有节点在同一个大集群里,使用同一个交换机接口,网络是通的。
原因:
当前大数据虚拟机100.19.9.xx开启了tcp_tw_recycle,timewait的连接强制回收,并会检查后续收包的时间戳,服务器就把带了“倒退”的时间戳、或者60秒之内时间戳的包当作是recycle的tw连接的重传数据,不是新的请求,于是丢掉不回包。导致主动发起的telnet的tcp概率建立不起来。
目前操作关闭服务器的tcp_tw_recycle机制后,网络丢包问题不再重现,此操作可能导致存在大量待回收的连接,占用系统资源。
之所以生产者和消费者存在时间差,是因为生产者和消费者内部之间有NTP时间同步,但两者之间没有,也不可能有时间同步,因为实际生产环境做不到要求二者时间一致,所以集群中不会设置全局NTP。