乙太網路介面停止回應約 30 秒,然後確認所有收到的套件的原因是什麼?

乙太網路介面停止回應約 30 秒,然後確認所有收到的套件的原因是什麼?

第一個問題!你好!

在 Ubuntu 16.04 上運行。

硬體資訊:lspci | awk '/[Nn]et/ {print $1}' | xargs -i% lspci -ks %

00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V
    Subsystem: ASUSTeK Computer Inc. Ethernet Connection (2) I219-V
    Kernel driver in use: e1000e
    Kernel modules: e1000e
02:00.0 Network controller: Intel Corporation Device 093c (rev 3a)
    Subsystem: Intel Corporation Device 7001

在運行 P2P 應用程式時,我遇到一些奇怪的乙太網路停頓 -> 更準確地說:https://github.com/prysmaticlabs/prysm。根據相同的應用程式日誌,大約 30 個對等點連接到我的電腦。頻寬利用率很低(峰值為 6 Mbps),我在 Cat6 電纜上運行,並獲得大約 120 Mbps 的光纖上行鏈路,並且端口正確轉發,如你可以看到我嗎組織。其他 P2P 應用程式(例如 torrent)不會顯示任何衝突的行為。

如前所述,症狀很奇怪。當我運行該應用程式時,它似乎沒有失去連接。但當另一個應用程式需要在網路上運行時(例如,網頁瀏覽、聊天、文件傳輸),介面會停滯幾秒鐘,甚至幾分鐘。我注意到這一點是因為瀏覽經常超時。

當發生停頓時,應用程式保持正常運行,但所有其他應用程式都會失去網路連線。我監控 ICMP (ping) 流量:

  • 從主機到路由器
  • 從另一臺本機到停止運作的主機

在這兩種設備中,它停止返回任何類型的回應(終端停止輸出,沒有回饋,也沒有超時)。經過長時間的拖延後,突然間,所有包裹都被確認了。請參閱此範例:

64 bytes from 192.168.1.1: icmp_seq=1122 ttl=64 time=0.304 ms
64 bytes from 192.168.1.1: icmp_seq=1123 ttl=64 time=0.303 ms
64 bytes from 192.168.1.1: icmp_seq=1124 ttl=64 time=0.313 ms
64 bytes from 192.168.1.1: icmp_seq=1125 ttl=64 time=0.263 ms
64 bytes from 192.168.1.1: icmp_seq=1126 ttl=64 time=0.266 ms
64 bytes from 192.168.1.1: icmp_seq=1127 ttl=64 time=0.273 ms
64 bytes from 192.168.1.1: icmp_seq=1128 ttl=64 time=0.289 ms
64 bytes from 192.168.1.1: icmp_seq=1129 ttl=64 time=0.276 ms
64 bytes from 192.168.1.1: icmp_seq=1130 ttl=64 time=0.280 ms
64 bytes from 192.168.1.1: icmp_seq=1131 ttl=64 time=0.635 ms
64 bytes from 192.168.1.1: icmp_seq=1132 ttl=64 time=0.292 ms
64 bytes from 192.168.1.1: icmp_seq=1133 ttl=64 time=0.537 ms
64 bytes from 192.168.1.1: icmp_seq=1134 ttl=64 time=0.299 ms
64 bytes from 192.168.1.1: icmp_seq=1135 ttl=64 time=0.272 ms
64 bytes from 192.168.1.1: icmp_seq=1136 ttl=64 time=27625 ms
64 bytes from 192.168.1.1: icmp_seq=1137 ttl=64 time=26635 ms
64 bytes from 192.168.1.1: icmp_seq=1138 ttl=64 time=25631 ms
64 bytes from 192.168.1.1: icmp_seq=1139 ttl=64 time=24640 ms
64 bytes from 192.168.1.1: icmp_seq=1140 ttl=64 time=23641 ms
64 bytes from 192.168.1.1: icmp_seq=1141 ttl=64 time=22671 ms
64 bytes from 192.168.1.1: icmp_seq=1142 ttl=64 time=21648 ms
64 bytes from 192.168.1.1: icmp_seq=1143 ttl=64 time=20652 ms
64 bytes from 192.168.1.1: icmp_seq=1144 ttl=64 time=19658 ms
64 bytes from 192.168.1.1: icmp_seq=1145 ttl=64 time=18655 ms
64 bytes from 192.168.1.1: icmp_seq=1146 ttl=64 time=17658 ms
64 bytes from 192.168.1.1: icmp_seq=1147 ttl=64 time=16659 ms
64 bytes from 192.168.1.1: icmp_seq=1148 ttl=64 time=15655 ms
64 bytes from 192.168.1.1: icmp_seq=1149 ttl=64 time=14632 ms
64 bytes from 192.168.1.1: icmp_seq=1150 ttl=64 time=13611 ms
64 bytes from 192.168.1.1: icmp_seq=1151 ttl=64 time=12588 ms
64 bytes from 192.168.1.1: icmp_seq=1152 ttl=64 time=11565 ms
64 bytes from 192.168.1.1: icmp_seq=1153 ttl=64 time=10542 ms
64 bytes from 192.168.1.1: icmp_seq=1154 ttl=64 time=9522 ms
64 bytes from 192.168.1.1: icmp_seq=1155 ttl=64 time=8501 ms
64 bytes from 192.168.1.1: icmp_seq=1156 ttl=64 time=7478 ms
64 bytes from 192.168.1.1: icmp_seq=1157 ttl=64 time=6459 ms
64 bytes from 192.168.1.1: icmp_seq=1158 ttl=64 time=5436 ms
64 bytes from 192.168.1.1: icmp_seq=1159 ttl=64 time=4415 ms
64 bytes from 192.168.1.1: icmp_seq=1160 ttl=64 time=3391 ms
64 bytes from 192.168.1.1: icmp_seq=1161 ttl=64 time=2370 ms
64 bytes from 192.168.1.1: icmp_seq=1162 ttl=64 time=1350 ms
64 bytes from 192.168.1.1: icmp_seq=1163 ttl=64 time=320 ms
64 bytes from 192.168.1.1: icmp_seq=1164 ttl=64 time=2.73 ms
64 bytes from 192.168.1.1: icmp_seq=1165 ttl=64 time=0.258 ms
64 bytes from 192.168.1.1: icmp_seq=1166 ttl=64 time=0.303 ms

然後網路恢復正常一段時間。

我嘗試過的事情:

  • 將 MTU 從 1500 增加到 9000(無效果)
  • 將 txqueuelen 從 1000 增加到 11000(無效果)
  • 限制可以連接的對等點數量(無效)
  • 虛擬化(無效果)
  • 刪除連接埠轉送。這似乎有效,儘管它違背了應用程式的目的並且使其速度相當慢。

此時我有兩個理論:

1) 要嘛網關表現得很搞笑(無法檢查)。我放棄了這個,因為網路中的其他設備在本地連接和外部連接中都運行正常2)或者某種內存緩衝區被阻塞,但不知道是哪一個。

我很感激靈感!

答案1

對於該卡,您可以嘗試使用此核心參數啟動。這解釋瞭如何做

pcie_aspm=off

另一種方法是使用ethtool.例如:

sudo ethtool -G eth0 rx 256 tx 256

那來自這裡

答案2

經過對網路中所有元素的更多調試後,我發現雖然其他設備的影響不太明顯,但它們確實受到了交通堵塞的影響,所以這讓我認為問題出在路由器/交換器上,這可能難以滿足P2P 應用程式的需求,可能是因為NAT 轉換。我將嘗試獲得更先進的硬體來解決這個問題。

相關內容