我正在經歷的事情: 我們有一個連接到rabbitmq服務器的應用服務器。 隨着時間的推移,來自rabbitmq服務器的ESTABLISHED連接數量增加,但應用服務器的計數保持相當穩定。瞭解TCP動態
我在兩個運行此:
[email protected]:~# 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
[email protected]:~# 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
實施例的結果將得到的RabbitMQ服務器上的應用程序服務器和15(甚至高達46)上說6。 我重新啓動rabbitmq服務器,顯然一切恢復正常,每邊有2個連接。
我假設交換機超時連接或應用程序不清楚地終止該過程。我正在研究這一點,但我想更好地理解TCP行爲。
的RabbitMQ的服務器上的當前設置:
tcp_retries1設置爲3
tcp_retries2設置爲15
所以我通常都期望看到周圍13-30分鐘,如果這些後「無效」連接降我正確理解論壇。
然而,看着TCP存活值:
tcp_keepalive_time設置爲7200(所以2h的它將把第一個存活探測後。)
tcp_keepalive_intvl是後75(所以75秒第一個,它將重新發送的探針。)
tcp_keepalive_probes是9(因此,這將在總髮送9個探針)
於是保活過程將需要7200+(9 * 75)= 7875,或大約2小時關閉之前11分鐘。
由於連接(假定)消失,導致兩個問題。
1.哪一個是正確的?
2.我是否錯過了另一個選項,除了開關或應用程序異常終止,可能導致這些無效連接?
來源:https://www.frozentux.net/ipsysctl-tutorial/chunkyhtml/tcpvariables.html
兩個主機之間的'ESTABLISHED'連接數不可能在每個主機上顯示爲不同。我建議你在兩臺主機上發佈實際的'netstat'輸出的相關部分。目前還不清楚你在說什麼。 – EJP 2015-04-01 09:04:35
已更新帖子以包含netstat的實際輸出。 前幾天,我會同意你的聲明100%! – Werner 2015-04-01 19:43:37
我應該改正這一點。如果一端已經重置了連接而另一端尚不知道這一點,那麼有可能。 – EJP 2015-05-31 22:57:17