需要调整哪些最佳设置才能使 Linux 能够处理大量 TCP 连接(例如代理服务器或 Web 服务器所看到的连接)?
我正在使用 Centos6 和 squid,看到大量 TIME_WAIT 连接备份,直到最后机器停止响应。机器当时没有加载,无法建立传入和传出连接。
我提出了一些调整建议/proc/sys/net/ipv4/tcp_tw_reuse
,/proc/sys/net/ipv4/tcp_tw_reuse
但是它们都提到了与负载平衡器和 NAT 的不良交互,而这两者都在我的环境中使用。
答案1
尝试调低这个:
net.ipv4.tcp_keepalive_time = 7200
就像是
net.ipv4.tcp_keepalive_time = 600
对你的情况来说应该会好很多。
另外,请确保您已调整本地端口范围。大多数发行版的默认设置是
net.ipv4.ip_local_port_range = 32768 61000
就像是
net.ipv4.ip_local_port_range = 1025 65534
应该会工作得更好。
答案2
也许您可以尝试减少 /proc/sys/net/ipv4/tcp_fin_timeout。如果您使用 keepalive,您可能需要摆弄 /proc/sys/net/ipv4/tcp_keepalive_intvl 和 /proc/sys/net/ipv4/tcp_keepalive_probes ?