DEC3850: Beobachtungen mit iperf3, 10GBps und LAGG

Started by white_rabbit, January 13, 2023, 03:18:33 PM

Previous topic - Next topic
January 13, 2023, 03:18:33 PM Last Edit: January 13, 2023, 03:23:24 PM by white_rabbit
Hallo.
Wir haben heute unsere neue DEC3850 genauer unter die Lupe genommen. Eigentlich hatten wir bisher von der OPNSense ein 2x 10 GBit LAGG zu einem Switch gelegt, um gleichzeitig Redundanz & Geschwindigkeit zu haben.

Nun habe ich heute ein paar Tests mit iperf3 durchgeführt, und zwar mit den beiden SFP+ Ports (ax0 und ax1) als LAGG über einen Cisco-SG350X-Swtich zu einem Rechner mit einer einfachen 10G-NIC.

Ich habe mich darüber gewundert, dass die Werte unter RETR (Retransmitted TCP packets) sich sehr stark voneinander unterscheiden und wüsste gerne, ob das Grund genug ist, auf das LAGG zu verzichten.

Hier die Messergebnisse -- Teil 1:

LAGG mit ax0 und ax1 aber nur eine Leitung steckt (egal welche der beiden!)
- - - - - - - - - - - - - - - - - - - - - - - - -
iperf3 -c 192.168.1.241 -P 10   (von der Firewall zu einem Client)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.58 GBytes  1.35 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  1.58 GBytes  1.35 Gbits/sec                  receiver
[  7]   0.00-10.00  sec  1.20 GBytes  1.03 Gbits/sec    0             sender
[  7]   0.00-10.00  sec  1.20 GBytes  1.03 Gbits/sec                  receiver
[  9]   0.00-10.00  sec   913 MBytes   766 Mbits/sec    0             sender
[  9]   0.00-10.00  sec   911 MBytes   764 Mbits/sec                  receiver
[ 11]   0.00-10.00  sec  1.26 GBytes  1.08 Gbits/sec    0             sender
[ 11]   0.00-10.00  sec  1.26 GBytes  1.08 Gbits/sec                  receiver
[ 13]   0.00-10.00  sec  1.25 GBytes  1.07 Gbits/sec    0             sender
[ 13]   0.00-10.00  sec  1.24 GBytes  1.07 Gbits/sec                  receiver
[ 15]   0.00-10.00  sec  1.24 GBytes  1.07 Gbits/sec    0             sender
[ 15]   0.00-10.00  sec  1.24 GBytes  1.07 Gbits/sec                  receiver
[ 17]   0.00-10.00  sec  1.25 GBytes  1.08 Gbits/sec    0             sender
[ 17]   0.00-10.00  sec  1.25 GBytes  1.08 Gbits/sec                  receiver
[ 19]   0.00-10.00  sec   868 MBytes   728 Mbits/sec    0             sender
[ 19]   0.00-10.00  sec   866 MBytes   727 Mbits/sec                  receiver
[ 21]   0.00-10.00  sec  1.20 GBytes  1.03 Gbits/sec    0             sender
[ 21]   0.00-10.00  sec  1.19 GBytes  1.03 Gbits/sec                  receiver
[ 23]   0.00-10.00  sec   849 MBytes   712 Mbits/sec    0             sender
[ 23]   0.00-10.00  sec   848 MBytes   711 Mbits/sec                  receiver
[SUM]   0.00-10.00  sec  11.5 GBytes  9.91 Gbits/sec    0             sender
[SUM]   0.00-10.00  sec  11.5 GBytes  9.90 Gbits/sec                  receiver

iperf Done.


... und Teil 2:


LAGG mit ax0 und ax1 und beide Leitungen stecken:
- - - - - - - - - - - - - - - - - - - - - - - - -
iperf3 -c 192.168.1.241 -P 10 (von der Firewall zu einem Client)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   578 MBytes   485 Mbits/sec  419             sender
[  5]   0.00-10.00  sec   576 MBytes   483 Mbits/sec                  receiver
[  7]   0.00-10.00  sec  1.40 GBytes  1.20 Gbits/sec  503             sender
[  7]   0.00-10.00  sec  1.40 GBytes  1.20 Gbits/sec                  receiver
[  9]   0.00-10.00  sec   805 MBytes   675 Mbits/sec  437             sender
[  9]   0.00-10.00  sec   803 MBytes   674 Mbits/sec                  receiver
[ 11]   0.00-10.00  sec  1.47 GBytes  1.26 Gbits/sec  521             sender
[ 11]   0.00-10.00  sec  1.47 GBytes  1.26 Gbits/sec                  receiver
[ 13]   0.00-10.00  sec   959 MBytes   804 Mbits/sec  350             sender
[ 13]   0.00-10.00  sec   957 MBytes   803 Mbits/sec                  receiver
[ 15]   0.00-10.00  sec  1.50 GBytes  1.29 Gbits/sec  597             sender
[ 15]   0.00-10.00  sec  1.49 GBytes  1.28 Gbits/sec                  receiver
[ 17]   0.00-10.00  sec  1.16 GBytes   999 Mbits/sec  322             sender
[ 17]   0.00-10.00  sec  1.16 GBytes   998 Mbits/sec                  receiver
[ 19]   0.00-10.00  sec   925 MBytes   776 Mbits/sec  261             sender
[ 19]   0.00-10.00  sec   923 MBytes   774 Mbits/sec                  receiver
[ 21]   0.00-10.00  sec   433 MBytes   363 Mbits/sec  317             sender
[ 21]   0.00-10.00  sec   431 MBytes   361 Mbits/sec                  receiver
[ 23]   0.00-10.00  sec   520 MBytes   436 Mbits/sec  317             sender
[ 23]   0.00-10.00  sec   518 MBytes   434 Mbits/sec                  receiver
[SUM]   0.00-10.00  sec  9.65 GBytes  8.29 Gbits/sec  4044             sender
[SUM]   0.00-10.00  sec  9.63 GBytes  8.27 Gbits/sec                  receiver

iperf Done.


Das Seltsame daran ist, dass die Werte unter RETR wieder auf 0 zurückgingen, sobald ich eine (egal welche) der beiden Leitungen im LAGG gezogen habe!

Und was noch seltsamer ist: Wenn ich auf der OPNSense die Mitgliedschaft zum LAGG auf eine der beiden Leitungen beschränkt habe (also Member entweder nur ax0 oder nur ax1) gingen die RETR-Werte auch runter -- aber auch nur dann, wenn ich die Leitung wirklich abgezogen habe. Sobald beide Leitungen zum Switch steckten, gingen auch die RETR-Werte hoch.
Hat jemand eine Erklärung bzw wie sollte man hier vorgehen? Auf das LAGG verzichten und dafür eine lupenreine Übertragung -- oder lieber auf Redundanz setzen und dafür die höheren RETR-Werte in Kauf nehmen??

Ach ja -- die zweite Beobachtung betrifft den max. Durchsatz: Ich kam nur mit der Einstellung MTU 9000 auf einen Durchsatz von 9.9 GBps -- ohne diese Einstellung waren es immer nur max 3 GBps. Muss man also alles auf Jumboframes umstellen??

Vielen Dank für einen guten Tipp.

Wie ist das LAGG konfiguriert? Round-robin ist schlecht und würde die Probleme erklären. Man will LACP. Und dann noch den Hash auf L3.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Wir haben mehrere LAGGs -- die sind immer alle als LACP konfiguriert.
Hash Layer stand bisher immer auf Standard (wobei nicht klar ist, was der Standard ist).
Aber L3 kann ich ausprobieren.

Was mir noch einfiel: Kann es auch ganz schlicht so sein, dass die zweite Leitung wie ein Loop bewertet wird, wenn sie nicht mehr zum LAGG gehört aber trotzdem noch steckt? Können die RETR-Fehler ganz einfach deshalb auftauchen?