【问题标题】:Understanding TCP dynamics了解 TCP 动态
【发布时间】:2015-06-01 06:14:43
【问题描述】:

我正在经历的事情: 我们有一个连接到 rabbitmq 服务器的应用服务器。 随着时间的推移,从 rabbitmq 服务器查看的 ESTABLISHED 连接数会增加,但从应用程序服务器查看的连接数保持相当稳定。

我在两者上都运行这个:

root@app01:~# netstat -ant | grep EST | grep 5672 | grep 172.25.12.48
tcp        0      0 172.25.12.48:50587      10.48.64.230:5672       ESTABLISHED
tcp        0      0 172.25.12.48:50588      10.48.64.230:5672       ESTABLISHED 

root@rabbit01:~# netstat -ant | grep EST | grep 5672 | grep 172.25.12.48
tcp6       0      0 10.48.64.230:5672       172.25.12.48:38408      ESTABLISHED
tcp6       0      0 10.48.64.230:5672       172.25.12.48:50588      ESTABLISHED
tcp6       0      0 10.48.64.230:5672       172.25.12.48:33491      ESTABLISHED
tcp6       0      0 10.48.64.230:5672       172.25.12.48:50587      ESTABLISHED
tcp6       0      0 10.48.64.230:5672       172.25.12.48:34541      ESTABLISHED

示例结果将在应用服务器上给出 6,在 rabbitmq 服务器上给出 15(甚至高达 46)。 我重新启动rabbitmq服务器,显然一切都恢复正常,每边2个连接。

我假设切换超时连接或应用程序不干净地终止进程。我正在研究这个,但我想更好地了解 TCP 行为。

rabbitmq 服务器上的当前设置:

tcp_retries1 设置为 3
tcp_retries2 设置为 15

因此,如果我正确理解论坛,我通常预计会在大约 13-30 分钟后看到那些“无效”连接。

然而,看看 tcp keepalive 值:

tcp_keepalive_time 设置为 7200(因此 2 小时后它将发送第一个 keepalive 探测。)
tcp_keepalive_intvl 是 75 (所以在第一个之后 75 秒,它会重新发送探测。)
tcp_keepalive_probes 为 9(所以一共会发送 9 个探针)

因此,keepalive 过程将花费 7200+(9*75)=7875,即关闭前大约 2 小时 11 分钟。

由于连接(大概)消失了,这导致了两个问题。
1. 哪个是正确的?
2. 除了交换机或应用程序异常终止可能导致这些无效连接之外,我是否缺少其他选项?

来源:https://www.frozentux.net/ipsysctl-tutorial/chunkyhtml/tcpvariables.html

【问题讨论】:

  • 两台主机之间的ESTABLISHED 连接数不可能在每台主机上显示为不同。我建议您在两个主机上发布实际netstat 输出的相关部分。目前还不清楚你在说什么。
  • 更新了帖子以包含 netstat 的实际输出。直到几天前,我才会 100% 同意你的说法!
  • 我应该纠正那个。有可能,如果一端已重置连接而另一端还不知道。
  • 是的,这对我来说是有道理的,但检查点保持该连接有效数天这一事实有点烦人!

标签: tcp timeout


【解决方案1】:

我们的 F5 是造成这种情况的原因。 似乎在空闲超时之后,F5 将条目从其表中删除。所以来自应用服务器的连接是无效的,TCP 会关闭它们。 但是,从 rabbitmq 服务器,不知何故,该连接仍然是有效的连接。 虽然我不明白为什么交换机能够保持连接状态有效 - 但是,这就是原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2013-08-21
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    相关资源
    最近更新 更多