看起来我们在繁忙的web服务器上挂着一堆tcp连接,这是ss -s的输出:
Total: 366 (kernel 1037) TCP: 72108 (estab 130, closed 71964, orphaned 0, synrecv 0, timewait 71962/0), ports 46158 Transport Total IP IPv6 * 1037 - - RAW 0 0 0 UDP 12 8 4 TCP 144 111 33 INET 156 119 37 FRAG 0 0 0
如何最好地调整此服务器上的TCP设置以防止出现问题/最大化性能? 我刚刚将net / ipv4 / ip_local_port_range从默认值增加到“1024 65000”
Linux上的TCP / IP堆栈已经非常优化,通常不需要任何东西。 例如,设置本地端口范围以获得一些额外的端口几乎肯定是不需要的。
就时间而言,这只是使用tcp的一部分。 如果您确实希望在该状态下拥有较less的端口,请更改tcp_fin_timeout或tcp_keepalive值。 虽然你真的不应该改变这些价值,除非你真的需要出于某种原因。
就耗尽端口而言,每个端口都键入一个源端口和目标端口。 除非你正在做类似nat的事情,否则你很可能不会耗尽源/目标对。
回应你关于使用memcached时连接被丢弃的评论; 您可以增加工作线程数和积压队列长度。 memcached的问题更可能是可用的端口数量。