簡潔版本

簡潔版本

簡潔版本

我的家庭網路是純千兆位元的,所有裝置都支援至少約 9000 位元組的巨型幀。將 Synology 上的 MTU 巨型幀設定增加到 6000(位元組)可提高效能(810Mbps 寫入和 945Mbps 讀取)。將值設為 7000 僅會破壞讀取效能(一路下降至 4Mbps);寫入效能保持快速。

這是出乎意料的,因為大多數巨型幀問題沒有與之相關的方向性,並且通常是全有或全無(無論資料包來自何處,都會在交換器上丟棄)。似乎沒有任何IP 分片確實在發生,但 TCP 層確實不高興。什麼可能導致這種不對稱/片狀行為?


長版

這些是我在試圖解決這個問題時所做的編輯筆記。

客戶

Realtek PCIe GBE 系列控制器 RTL8167
巨型幀:9KB MTU

$ netsh interface ipv4 show subinterfaces
   MTU  MediaSenseState   Bytes In  Bytes Out  Interface
------  ---------------  ---------  ---------  -------------
  9198                1   32501506   11275394  Local Area Connection

(看來 9198 不包括 14 位元組乙太網路標頭)

$ ping -l 1500 -f 192.168.1.84

(在客戶端上執行 Wireshark 時觀察到;所有大小均為線位元組大小)
[9213, ∞] 主機未發送(需要分段)
[9019, 9212] 已發送,但沒有回應
[9015, 9018] 分段IP 響應
[42, 9014] ] 未分段的 IP
[0, 41] ? (無法生成,因為 eth+IP+ICMP 標頭 = 14+20+8 = 42 位元組)

路由器(交換器部分)

Asus RT-AC68U -- 韌體 3.0.0.4.378_4585
啟用巨型幀:「啟用」
無法弄清楚它實際支援的巨型幀大小,似乎至少為 9000

它將來自客戶端的 ping 請求分段為 1514 位元組(但是 ping 路由器可能會觸發其 WAN 路由器行為而不是 LAN 交換器行為?)

非管理型交換機

TP-LINK TL-SG1008D
Jumbo Frames(規格表):9KB(他們的網站說是 15KB,但看起來像是不同的裝置)

伺服器

Synology DS1815+ -- DSM 5.2-5565 更新 1
巨型幀:9000

從 Synology 到客戶端的檔案讀取資料包
大小:大多數為 9014 位元組(雙向)
IP 標誌:不要分段
Wireshark 發現:TCP 虛假重傳、TCP 上一段未捕獲、TCP 亂序、TCP 快速重傳和正常(9014 位元組)資料包
SMB2 - over-NetBIOS 協定資料包讀取回應讀取長度:65,536(~8 個TCP 段)

$ ifconfig
bond0     Link encap:Ethernet  HWaddr --:FF
          inet addr:192.168.1.84  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addrs: --/64 Scope:Link, --/64 Scope:Global, --/64 Scope:Global
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:9000  Metric:1
          RX packets:lots errors:85 dropped:0 overruns:0 frame:85
          TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:237 GiB  TX bytes:117 GiB

eth2      Link encap:Ethernet  HWaddr --:00
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:9000  Metric:1
          RX packets:lots errors:19 dropped:0 overruns:0 frame:19
          TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:236 GiB  TX bytes:83 GiB

eth3      Link encap:Ethernet  HWaddr --FF
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:9000  Metric:1
          RX packets:lots errors:66 dropped:0 overruns:0 frame:66
          TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1 GiB  TX bytes:33 GiB

eth2 和 eth3 使用自適應負載平衡進行綁定(無交換器支援)

$ ping -c 5 -s 1500 192.168.1.82

(在客戶端上執行 Wireshark 時觀察到;所有大小均為線字節大小)
[9019, ∞] 已發送請求,已發送回應,未收到回應
[9015, 9018] 碎片IP 請求(可能由Synology 碎片,busybox ping 沒有無碎片選項,所以很難說)
[60, 9014] 未碎片 IP
[0, 59] ? (無法生成,因為 busybox ping 至少放置 18 位元組加上 42 位元組標頭)

雜項數據

  • 將客戶端 MTU 更改為 8KB 沒有幫助
  • 當伺服器的 MTU 從 6000(很好,945Mbps)更改為 7000(很糟糕,4Mbps)時,伺服器的讀取速度急劇下降
  • 伺服器的寫入速度在所有伺服器 MTU 設定下基本上不受影響(始終在 700 到 825 Mbps 之間)
  • Synology 具有綁定網路(4 個連接埠中的 2 個)
  • 電纜均為 Cat6 或 Cat5e

答案1

更新韌體

根據我的經驗,Synology 在每個韌體版本中修復了許多問題,而您運行的韌體已經有近四年的歷史了。我還沒有閱讀發行說明,但從那時起似乎有很多機會修復巨型幀錯誤。

使用直接連接進行測試

使用新的跳線將測試機直接連接到 Synology(在相同子網路上指派靜態 IP)並重新執行測試。這將消除佈線和交換器以及任何其他設備和配置問題。如果問題仍然存在,請使用另一台電腦執行測試。如果它仍然存在,那麼肯定是 NAS。

如果在直連測試期間問題消失,請嘗試先更換交換機,然後再更換佈線。您沒有顯示連接,因此我假設測試機和 NAS 之間只有 TPLINK。

相關內容