Die Leseleistung von Synology verschlechtert sich mit Jumbo-Frames über 6000

7745
colithium

Kurze Version

Mein Heimnetzwerk ist reines Gigabit mit Geräten, die alle Jumbo-Frames mit mindestens ~ 9000 Byte unterstützen. Durch Erhöhen der MTU-Jumbo-Frame-Einstellung in der Synology auf 6000 (Byte) wird die Leistung erhöht (810 MBit / s Schreiben und 945 MBit / s Lesen). Wenn Sie den Wert auf 7000 setzen, wird nur die Leseleistung zerstört (bis hinunter auf 4 MBit / s). Die Schreibleistung bleibt schnell.

Dies ist unerwartet, da die meisten Jumbo-Frame-Probleme nicht mit einer direktionalen Ausrichtung verbunden sind und normalerweise alles oder nichts sind (Pakete werden an einem Switch verworfen, egal woher sie kamen). Es scheint überhaupt keine IP-Fragmentierung zu geben, aber die TCP-Schicht ist wirklich unglücklich. Was könnte dieses asymmetrische / flockige Verhalten verursachen und wie kann ich es beheben, um die volle 9000-Byte-MTU zu unterstützen, die alle meine Geräte unterstützen sollen?


Lange Version

Dies sind meine bearbeiteten Notizen, während ich versuche, dies herauszufinden.

Klient

Realtek PCIe GBE-Familie Controller RTL8167
Jumbo Frame: 9 KB MTU

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

(scheint 9198 enthält nicht den 14-Byte-Ethernet-Header)

$ ping -l 1500 -f 192.168.1.84 

(beobachtet, wenn Wireshark auf Client läuft; alle Größen sind Drahtbyte-Größen.)
[9213, ∞] nicht vom Host gesendet (würde Fragmentierung erfordern)
[9019, 9212] gesendet, aber keine Antwort
[9015, 9018] fragmentierte IP-Antwort
[42, 9014 ] unfragmentiertes IP
[0, 41]? (kann nicht generiert werden, da eth + IP + ICMP-Header = 14 + 20 + 8 = 42 Bytes sind)

Router (Schalterteil)

Asus RT-AC68U - Firmware 3.0.0.4.378_4585
Enable Jumbo Frame: "Enable"
Kann nicht herausfinden, welche Jumbo-Frame-Größe tatsächlich unterstützt wird. Es scheint mindestens 9000 zu sein

Ping-Anfragen werden vom Client direkt bei 1514 Bytes fragmentiert (aber ein Ping des Routers löst möglicherweise das Verhalten seines WAN-Routers anstelle des Verhaltens seines LAN-Switches aus?)

Nicht verwalteter Switch

TP-LINK TL-SG1008D
Jumbo-Rahmen (Datenblätter): 9 KB (auf der Website sind 15 KB angegeben, aber es sieht aus wie ein anderes Gerät)

Server

Synology DS1815 + - DSM 5.2-5565 Update 1
Jumbo Frame: 9000

Dateilesepakete von Synology nach Client-
Größe: Die meisten sind 9014 Bytes (in beide Richtungen).
IP-Flags: Fragmentieren Sie nicht von
Wireshark entdeckt: TCP Sporadial Retransmission, TCP Vorheriges Segment nicht erfasst, TCP Out-Of-Order, TCP Fast Retransmission, und normale (9014 Byte) Pakete
SMB2-over-NetBIOS-Protokollpakete lesen Antwort Leselänge: 65.536 (~ 8 TCP-Segmente)

$ 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 und eth3 werden mithilfe von Adaptive Load Balancing verbunden (keine Switch-Unterstützung)

$ ping -c 5 -s 1500 192.168.1.82 

(beobachtet,
wenn Wireshark auf Client ausgeführt wird; alle Größen sind Draht-Byte-Größen.) [9019, ∞] Anforderung gesendet, Antwort gesendet, Antwort nicht empfangen
[9015, 9018] fragmentierte IP-Anforderung (wahrscheinlich durch Synology fragmentiert, hat busybox ping kein No-Fragment-Option (schwer zu sagen))
[60, 9014] unfragmentiertes IP
[0, 59]? (Generierung nicht möglich, da Ping von busybox mindestens 18 Byte plus 42-Byte-Header enthält)

Verschiedene Daten

  • Das Umstellen der Client-MTU auf 8 KB hat nicht geholfen
  • Die Lesegeschwindigkeit des Servers fällt von einer Klippe ab, wenn die MTU des Servers von 6000 (großartig 945 Mbps) auf 7000 (schrecklich, 4 Mbps) geändert wird.
  • Die Schreibgeschwindigkeit des Servers ist bei allen Server-MTU-Einstellungen grundsätzlich nicht betroffen (immer zwischen 700 und 825 MBit / s).
  • Die Synology verfügt über ein gebundenes Netzwerk (2 der 4 Ports)
  • Kabel sind alle Cat6 oder Cat5e
9

0 Antworten auf die Frage