如果我们每次需要写入或读取db时都必须连接db(redis)。在某些操作之后,然后关闭连接。因为连接经常(假设必须连接然后关闭)。结果,太多的TIME_WAIT状态套接字停留在内核中。 有点像:
`netstat -vatnl | grep 6379 tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:36476 127.0.0.1:6379 TIME_WAIT tcp 0 0 127.0.0.1:37193 127.0.0.1:6379 ESTABLISHED tcp 0 0 127.0.0.1:36480 127.0.0.1:6379 TIME_WAIT tcp 0 0 127.0.0.1:36479 127.0.0.1:6379 TIME_WAIT tcp 0 0 127.0.0.1:36472 127.0.0.1:6379 TIME_WAIT tcp 0 0 127.0.0.1:36457 127.0.0.1:6379 TIME_WAIT tcp 0 0 127.0.0.1:36460 127.0.0.1:6379 TIME_WAIT tcp 0 0 127.0.0.1:36481 127.0.0.1:6379 TIME_WAIT `
sysctl -w net.ipv4.tcp_timestamps=1
sysctl -w net.ipv4.tcp_tw_recycle=1
< l_onoff=0 ; l_liger=1
还是其他一些方法? 答案 0 :(得分:1)
TIME_WAIT是tcp协议拆除过程的一部分。它们确保不接受旧连接的数据包作为新连接的一部分。所以,除非有1000个,否则应该保留原样。
虽然说source / dest是localhost,但是不应该存在旧连接数据包可以被视为新连接的情况。在您提出的解决方案中,可以使用1。解决方案2& 3可能有更广泛的含义,因此请在申请之前进行检查。