2

我遇到了一个问题,由于所有连接都处于 TIME_WAIT 状态,我的连接用完了。将超时设置为 1 秒仍然会导致问题。我们使用负载均衡器,所以我使用 tcp_tw_reuse 而不是回收。我将发布需要使用 tcp_tw_reuse 的代码。

但是,我认为 tcp_tw_reuse 可能会产生负面影响,但我想不出它可能是什么。有谁知道为什么在 Linux 安装中默认情况下不启用此功能?

或者,谁能列出任何潜在的负面影响?我认为这对系统没有任何影响,直到连接用完为止,此时对此的需求似乎很明显。

谢谢。

4

2 回答 2

2

今天看到一篇很棒的文章,它提供了一个非常深入的答案,我认为遇到这个问题的任何人都应该有:

http://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html

在查看它之后,看起来我对使用 tcp_tw_reuse 所做的更改甚至不会影响传入的连接,因此看来我最初的解决方案是一个徒劳的更改。

于 2014-05-02T16:39:13.437 回答
1

TIME_WAIT 状态是 TCP 的一个组成部分。这是一种安全/数据完整性措施,可防止来自相同端口号之间的两个顺序连接的数据混淆。你当然应该弄乱它。它可能导致的唯一问题是创建出站连接时出现绑定错误。它最终是由应该使用连接池但没有使用的应用程序引起的。

于 2012-11-29T20:57:24.143 回答