TIME_WAIT状态的六十秒为何成为高并发服务器的隐形瓶颈
一个拥有16GB内存的服务器,运行着每秒处理5000次HTTP请求的API网关。运维人员发现,即使系统负载很低,新的连接请求却开始失败。ss -tan命令显示数万个连接停留在TIME_WAIT状态。有人建议调低tcp_fin_timeout,有人说要开启tcp_tw_recycle,还有人干脆在代码里加了SO_LINGER。这些建议哪个是对的?答案是:都不对,而且有些已经过时,有些则相当危险。 ...
一个拥有16GB内存的服务器,运行着每秒处理5000次HTTP请求的API网关。运维人员发现,即使系统负载很低,新的连接请求却开始失败。ss -tan命令显示数万个连接停留在TIME_WAIT状态。有人建议调低tcp_fin_timeout,有人说要开启tcp_tw_recycle,还有人干脆在代码里加了SO_LINGER。这些建议哪个是对的?答案是:都不对,而且有些已经过时,有些则相当危险。 ...
1981 年 9 月,Jon Postel 发布了 RFC 793,定义了传输控制协议(TCP)的核心规范。这份文档中有一张著名的 TCP 状态转换图,包含 11 个状态和错综复杂的箭头指向。四十多年后的今天,这张图依然是网络工程师面试的必考题,也是无数系统故障排查的起点。 ...