Linux:慎用net.ipv4.tcp_tw_recycle

  • 2015-12-22
  • 61
  • 1
  • 0

net.ipv4.tcp_tw_recycle 表示开启TCP连接中TIME-WAIT sockets的快速回收默认为0,表示关闭。

网上很多优化教程,都是将该参数打开,用以避免大量的TIME-WAIT Sockets。然而,这个参数并不是在所有场景下都建议打开,线上环境慎用该参数(惨痛的教训)。

tcp_tw_recycle开启时,tcp_timestamps也同时开启,用以达到快速回收socket的效果,但是对于位于NAT设备后面的Client来说,这是一场灾难。它会导致NAT设备后面的Client连接Server不稳定,有的Client能连接Server,有的Client却不能连接Server。也就是说,tcp_tw_recycle这个功能,是为“内部网络”(不存在NAT的情况)设计的,对于线上环境不建议使用。

评论