Ubuntu

為什麼重新啟動 tomcat9 可以解決網路問題?

  • June 7, 2021

我面臨一個非常奇怪的問題。幾天以來,每天幾次,我的 ubuntu 伺服器無法建立出站連接。我可以使用 SSH 登錄,連接到由 apache 網路伺服器託管的 Web 應用程序,但嘗試使用 apt 安裝軟體包或執行 telnet google.com 443 會導致錯誤,例如“telnet:無法連接到遠端主機:連接拒絕”或“連接(111:連接被拒絕)無法啟動與 fr.archive.ubuntu.com:80 的連接(2001:860:f70a::2)。-連接(101:網路無法訪問)”。

起初,我懷疑 iptables 規則,但將它們全部刪除並不能解決問題。另一方面,如果我停止 tomcat9 應用程序伺服器,一切都會重新開始工作。

我無法想像 tomcat 如何影響我伺服器的網路連接。完全相同的應用程序部署在不受此問題影響的其他類似的 Ubuntu 18.04 伺服器上。

任何關於檢查什麼以辨識潛在問題的提示將不勝感激。

非常感謝你!

編輯>

#ping google.com
PING google.com (172.217.170.14) 56(84) bytes of data.
From _gateway (192.168.10.254) icmp_seq=1 Destination Host Unreachable
64 bytes from jnb02s02-in-f14.1e100.net (172.217.170.14): icmp_seq=1 ttl=57 time=226 ms
64 bytes from jnb02s02-in-f14.1e100.net (172.217.170.14): icmp_seq=2 ttl=57 time=226 ms



# traceroute google.com
traceroute to google.com (172.217.170.14), 30 hops max, 60 byte packets
1  _gateway (192.168.10.254)  0.889 ms !H  0.446 ms !H  0.406 ms !H


# ip route get 8.8.8.8
8.8.8.8 via 192.168.10.254 dev eth0 src 192.168.10.142 uid 0 
cache

事實證明,提供基礎設施的人確實設置了某種出站連接速率限制器,該限制器是由 DCM4CHEE docker 容器不斷的反向 DNS 請求觸發的。

我反復得到保證,他們的防火牆中沒有啟動這樣的機制,而且我沒有考慮過檢查出站 DNS 連接,所以我沒有註意到它們執行的“巨大”速率。

我已經浪費了 40 多個小時來調查這個問題,並且一旦他們弄清楚這個問題,我就能在 5 分鐘內解決它。

謝謝你的幫助。

問題的一種可能來源可能是打開文件描述符的數量超過系統限制。

當系統處於該狀態時,執行cat /proc/sys/fs/file-nr. 輸出如下所示:

46512   0   9223372036854775807

如果第一個數字接近第三個數字,則意味著所有可用的文件描述符都在使用中。

要增加可用文件描述符的數量,您可以執行

sysctl -w fs.file-max=<number>
sysctl -p

Where<number>高於您現有的最大限制(先前輸出中的第三列)。

引用自:https://serverfault.com/questions/1064055