线上nginx从1.8版本升级到1.16版本导致nginx后端服务器的TIME_OUT过高
故障现象:将nginx升级后,nging后端的tomcat服务器的TIME_OUT由之前的300飙升到1500,甚至有的机器飙升到5000,nginx自身的tcp连接很正常也就在300左右。
故障分析:
现上原先的环境是centos6+nginx1.8
升级后的环境是centos7+nginx1.16
各种排查后一直无解
后来对比了下内核参数发现,centos6默认的内核参数中net.ipv4.tcp_timestamps = 1,而centos7该默认配置是net.ipv4.tcp_timestamps = 0,将升级后nginx所在的centos7该参数改成1就可以了。
网上的说法:
net.ipv4.tcp_timestamps = 1
#开启TCP时间戳
#以一种比重发超时更精确的方法(请参阅 RFC 1323)来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项。