tcp_tw_recycle 慎用
有一次线上问题,表现为有些设备有时能连上,有时又不行,某些设备又一直能连上。
后来经过长时间跟踪,发现是因为开启了tcp_tw_recycle,导致tcp握手异常。
tcp_tw_recycle 介绍
net.ipv4.tcp_tw_recycle
是 Linux 内核中的一个 TCP 参数,用于加速 TCP TIME-WAIT 状态套接字的回收。在打开该选项时,内核会更快地回收处于 TIME-WAIT 状态的连接,以便可以更快地重新使用这些连接资源。
参数说明
net.ipv4.tcp_tw_recycle
:该选项启用(1)或禁用(0)快速回收 TIME-WAIT 状态的套接字。
打开该选项的影响
优点
- 减少 TIME-WAIT 连接:加快 TIME-WAIT 状态套接字的回收,可以减少大量短连接时产生的 TIME-WAIT 状态连接数。
- 提高端口重用率:有助于在高并发连接场景下提高端口的重用率,减轻服务器压力。
缺点
- NAT 兼容性问题:
tcp_tw_recycle
会严格检查连接的时间戳,这对于 NAT(网络地址转换)环境可能导致严重问题。因为不同的客