10Gbit Verbindung, aber nur 1Gbit Übertragungsrate

Teutates

Cadet 1st Year
Registriert
März 2005
Beiträge
11
Moin zusammen,

ich wollte mein Heimnetzwerk mal etwas auffrischen und habe mir daher für zwei Rechner eine PCIe-Netzwerkkarte für 10Gbit von 10Gtek geholt.

Computer 1 mit Karte 1 hat einen Intel X540 Controller mit RJ45.
Computer 2 mit Karte 2 hat einen Intel 82599EN Controller mit SFP+.

Das Netzwerkkabel hat min Cat6. Das Verlegekabel sollte Cat7 sein. Die Leitungen kommen zusammen in einem Ubiquiti USW Aggregation mit 8 Ports. Der Anschluss von Computer 1 an dem Gerät ist über einen Transceiver für RJ45. Der andere Computer ist direkt mit einem DAC-SFP+-Kabel angeschlossen.

Im Unifi-Controller sehe ich, dass beide jeweils eine Geschwindigkeit von 10GbE haben.

Wenn ich jetzt von Computer 2 über das Netzwerk Dateien an Computer 1 übertragen möchte (und vice versa), dann habe ich nur eine Übertragungsrate von 1Gbit. In beiden Rechnern werkeln SSDs, die mindestens 500MByte/sec schaffen müssten. Es müsste also schon etwas mehr sein, als ich vorher mit dem 1-Gbit-Netzwerk hatte.

Habt Ihr eine Idee, woran es liegen könnte? An was habe ich nicht gedacht?

Gruß
teutates
 
Mal eine große Datei probiert? Im schlimmsten Fall können viele kleine Dateien selbst bei SSDs ausbremsen. Ansonsten ggf. mal die Geschwindigkeit im Switch festnageln. Wobei, wenn der schon 10GBit anzeigt ... Aber probieren kostet ja nichts.
 
Hast du Jumbo Frames aktiviert?
Ist der Transceiver mit dem Ubiquiti Switch kompatibel?
Irgendwelche QOS-Einstellungen?
 
Welches Betriebssystem? Treiber aktuell? Konfiguration der NICs überprüft, z.B. Interrupt Moderation und Rx/Tx Buffer Sizes? Je nach Host spielt das zwar keine so große Rolle mehr, ist aber oft noch in Treibern auf sehr schonenden Umgang mit Ressourcen ausgelegt, auch wenn eigentlich genug Rechenleistung und RAM vorhanden ist.

Ansonsten, mindestens 500 MB/s klingt nach SATA SSDs. Jeweils nur eine einzelne? Je nach Workload und Modell darfst du da nicht viel erwarten. Dass die nur im Bereich von 1 GBit/s Daten schreiben können ist nicht ungewöhnlich.
 
Mal den Durchsatz mit iperf ausprobiert?
https://iperf.fr/

Dateien kopieren kann ganz andere Flaschenhälse auftun als eine reine Durchsatzmessung, z.B. die SSD, wie schon erwähnt.
 
  • Gefällt mir
Reaktionen: KillerCow und azereus
Teutates schrieb:
Wenn ich jetzt von Computer 2 über das Netzwerk Dateien an Computer 1 übertragen möchte (und vice versa), dann habe ich nur eine Übertragungsrate von 1Gbit. In beiden Rechnern werkeln SSDs, die mindestens 500MByte/sec schaffen müssten. Es müsste also schon etwas mehr sein, als ich vorher mit dem 1-Gbit-Netzwerk hatte.
Welches Protokoll?
 
Linkspeed kontrollieren (ist tatsächlich 10Gbit geschaltet?) und dann iperf3 laufen lassen.
 
  • Gefällt mir
Reaktionen: KillerCow
SFP Module auch wirklich 10Gbit fähig?
 
Irgendwelche Speed/Duplex Probleme (dass da nur eine Halbduplex Verbindung ausgehandelt wird oder eingestellt ist) ?
Sniffer angeschlossen und mal reingeschaut in den Traffic?
Wie ist die MTU Size der Pakete?
 
Moin und danke schon mal für Eure Tipps und Fragen.

Nochmal ein paar Infos zur Hardware:

  • Computer 1 (Client) hat eine 830er, 850er Pro und eine 870er Evo SSD von Samsung eingebaut. Der Transfer der Dateien läuft über die 870er (530MB/s Schreiben und 560 MB/s Lesen).
  • Computer 2 (Server) hat zwei 990er Pro NVME SSD, die als Raid 1 laufen. Darauf habe ich Proxmox installiert. Zusätzlich habe ich dort TrueNAS als VM laufen. Das ist ein Datengrab mit fünf 4TB WD Red Pro WD4003FFBX. Laut der WD-Seite haben die eine Transferrate von 217 MB/s.

Die ersten Tests liefen gegen TrueNAS - das ich hier nicht die volle Geschwindigkeit erreichen kann, ist mir danach auch klar geworden. Ich habe danach einen Samba-Share auf einer VM eingerichtet, die auf der NVME SSD liegt. Übertragungen auch von großen Dateien (10Gb) laufen nicht schneller als 150 Mb/s.

Danach habe ich mal iperf3 ausprobiert und jeweils Server und Client einmal getauscht. Da kam ich in jeder Richtung auf 1,04 Gbits/s.

Interessant finde ich, wenn ich Jumbo Frames aktiviere, dann geht die Rate mal hoch auf 200/300 MB/s, sinkt danach aber auch wieder ab. Wenn ich Jumbo Frames wieder deaktiviere, dann steigt die Transferrate auch kurz an und sinkt erneut ab.

Der Transceiver sollte mit dem Switch kompatibel sein. Wenn nicht, dann würde doch gar keine Verbindung zustande kommen, oder?

Sniffer (WireShark o.ä.) habe ich noch nicht zwischengeschaltet. Ich habe da auch noch nicht die Erfahrung, dass ich anhand des Traffics sehen kann, ob das alles in Ordnung ist.
 
Was für Hardware steckt denn in Client und Server? Jumbo Frames sind meistens Dumbo Frames. Die bringen nur was, wenn du I/O-limitiert bist. Das passiert gar nicht mehr so oft heutzutage, vorallem nicht wenn es nur 10G sein soll.

Du hast ein paar wichtige Fragen ignoriert. Ich nehme jetzt mal an, dass der Client Windows nutzt? Die iperf3-Implementation für Windows ist manchmal etwas wonky. Ob das Ergebnis korrekt ist sei also mal dahingestellt.

Khorneflakes schrieb:
Konfiguration der NICs überprüft, z.B. Interrupt Moderation und Rx/Tx Buffer Sizes? Je nach Host spielt das zwar keine so große Rolle mehr, ist aber oft noch in Treibern auf sehr schonenden Umgang mit Ressourcen ausgelegt, auch wenn eigentlich genug Rechenleistung und RAM vorhanden ist.

Das würde ich mir dann als nächstes anschauen. Windowstreiber sind oft ab Werk auf maximale Resourcenschonung ausgelegt. Mit Interrupt Moderation und winzigen Buffern kannst du keinen sonderlich hohen Durchsatz erwarten.

Allerdings darfst du dir sowieso nicht sonderlich viel davon versprechen. Mit fünf 4 TB HDDs geht nicht so furchtbar viel. Wie sind die denn konfiguriert? 1 vdev, Raid-z1?

Mit bisschen Caching und so ist damit nur bedingt 10G möglich. Wenn du 200-300 MB/s erreichen würdest, dann wäre das schon ganz gut. Ein vielfaches der einzelnen HDDs kannst du nicht erwarten, so skaliert das nicht. Kann auch durchaus langsamer als eine einzelne HDD sein. Für Performance brauchst du mehr vdevs und Raid 1 oder Raid 10.
 
Wenn du mit iperf3 über den unbekannten Switch / Switche(??) nicht die volle Performance erreichst, dann könnte es an den Switchen liegen. Da gab es hier in Forum schon einige Fälle wo die günstigsten Switche nicht die erhofften Performance lieferten.

Wie viel liefert iperf3 bei einer direkten Verbindung?

Du hast auch auf beiden System die (idealerweise) gleiche Binary benutzt?
 
Bei den ganzen Problemen, die hier beschrieben werden, frage ich mich mal wieder, ob mehr als GBit im Heimnetz für mich unterm Strich was bringen würden. Klar, so ein 20TB-NAS umkopieren dauert dann "nur" noch 2-3 Tage, statt 1 Woche, aber sowas macht man ja auch sinnvollerweise nicht, sondern steckt die Platten in ein SATA-Dock. Das ganze kostet ja auch einiges an Strom und die HW selbst. Wir haben an der Arbeit Alletras und Kisten im Dutzend, die kosten jeweils ein Einfamilienhaus. Aber das ist halt auch eine andere Liga. Das Upgrade damals vor ca. 15 Jahren von 100MBit auf GBit war wirklich Gamechanger, aber angesichts des Stromverbrauchs lohnt sich das für mich nicht für Zuhause.
 
Kommt drauf an, für viele Leute ergibt es keinen Sinn.

Mit 1G kommen die allermeisten immernoch klar.
2.5G kann Sinn ergeben, wenn man etwas mehr Daten als üblich kopiert.
5G ergibt kaum einen Sinn, denn wenn man noch mehr Daten hat, dann geht man direkt auf 10G. Das ist heutzutage relativ trivial und auch günstig in der Anschaffung und dem Energieverbrauch.
25G ist zusehends interessanter geworden in den letzten Jahren. 25G ist das neue 10G. Für Enthusiasten und einfach die, die der breiten Masse voraus sind / sein wollen.
50G macht kaum jemand.
100G ist noch etwas speziell was die Karten betrifft, die sind noch teuer und die Anforderungen an das PCIe-Subsystem des Systems sind hoch. Die praktische Nutzung ist zuhause noch nicht trivial.

100G-Switche für zuhause sind mittlerweile jedoch schon günstig zu bekommen. Mikrotik CRS504 und CRS510 haben den Weg geebnet. Diese Switche kosten wesentlich weniger als das was Leute regelmäßig für Grafikkarten ausgeben.
 
Teutates schrieb:
Danach habe ich mal iperf3 ausprobiert und jeweils Server und Client einmal getauscht. Da kam ich in jeder Richtung auf 1,04 Gbits/s.
Das schließt ja schon mal viele Fehlerquellen aus (zu langsamer Massenspeicher, zu langsame Kryptographie).

Ändert sich etwas, wenn du bei iperf3 noch die Anzahl der parallelen Transfers erhöhst, z.B. mit "-P10"? Dabei auf die CPU-Auslastung achten. Wenn sich die Prozessoren auf beiden Seiten langweilen und auch bei 10 parallelen Transfers die Geschwindigkeit auf ca. 1Gbit/s wie festgetackert ist - dann läuft die Verbindung vermutlich auch nur mit 1Gbit/s.

Also sieh mal als erstes zu, wie du mit iperf3 an die 10Gbit/s (bzw. 9,49Gbit/s) herankommst. Da das weder Massenspeicher noch Kryptographie verwendet, bleiben als mögliche Flaschenhälse nur die eigentliche Verbindung und die Prozessorleistung.

Achso, eins noch: Stecken die Netzwerkkarten auch in geeigneten PCIe Slots? PCIe 2.0 Slots würden nicht ausreichen...
 
  • Gefällt mir
Reaktionen: JumpingCat
Mit -P10 komme ich auf 3,7Gbit, mit -P1 auf 1,08. Der CPU scheint es egal zu sein, die dümpelt mit im Schnitt beim Client mit 25% und beim Server mit 35% rum.

Im Client steckt die NEtzwerkkarte in einem PCIe 3.0 x16 (dual at x16 / x16 mode) slot und im Server ist es ein PCIe 5.0 x8. Die Tests laufen aber gegen einen virt. Server. In Proxmox ist dafür eine Linux Bridge eingerichtet.

Es macht auch keinen Unterschied, ob Jumbo-Frames aktiviert sind oder nicht.
 
Teutates schrieb:
Mit -P10 komme ich auf 3,7Gbit, mit -P1 auf 1,08. Der CPU scheint es egal zu sein, die dümpelt mit im Schnitt beim Client mit 25% und beim Server mit 35% rum.
Also ist der Link offenbar nicht auf 1Gbit/s limitiert, und es zumindest zum Teil ein Software- oder Konfigurationsproblem. Wobei mir die CPU-Last schon etwas hoch erscheint.

Mal als Anhaltspunkt: Bei mir werkelt ein Rackserver mit Xeon W-1290T und auf dem Mainboard integriertem Intel X550-T2, mein Desktop mit Xeon E3-1275v5 mit einer no-name Marvell/Aquantia AQC113-Karte ist über zwei kaskadierte 10G-Switches (und eine über 20 Jahre alte Leitung) damit verbunden. Auf dem Server läuft Debian 12.7, auf dem Desktop Ubuntu 22.04.5.

Damit bekomme ich mit iperf3 in Richtung Server -> Client perfekten Durchsatz, ebenso beim bidirektionalen Test:
Code:
$ iperf3 -c 192.168.178.21 --bidir
Connecting to host 192.168.178.21, port 5201
[  5] local 192.168.178.31 port 37480 connected to 192.168.178.21 port 5201
[  7] local 192.168.178.31 port 37484 connected to 192.168.178.21 port 5201
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-1.00   sec  1.10 GBytes  9.48 Gbits/sec   66   1.42 MBytes     
[  7][RX-C]   0.00-1.00   sec  1.10 GBytes  9.47 Gbits/sec               
[  5][TX-C]   1.00-2.00   sec  1.11 GBytes  9.50 Gbits/sec    0   1.64 MBytes     
[  7][RX-C]   1.00-2.00   sec  1.11 GBytes  9.49 Gbits/sec               
[  5][TX-C]   2.00-3.00   sec  1.10 GBytes  9.49 Gbits/sec    0   1.65 MBytes     
[  7][RX-C]   2.00-3.00   sec  1.10 GBytes  9.49 Gbits/sec               
[  5][TX-C]   3.00-4.00   sec  1.10 GBytes  9.49 Gbits/sec    0   1.66 MBytes     
[  7][RX-C]   3.00-4.00   sec  1.11 GBytes  9.49 Gbits/sec               
[  5][TX-C]   4.00-5.00   sec  1.10 GBytes  9.49 Gbits/sec    0   1.67 MBytes     
[  7][RX-C]   4.00-5.00   sec  1.10 GBytes  9.49 Gbits/sec               
[  5][TX-C]   5.00-6.00   sec  1.10 GBytes  9.49 Gbits/sec    0   1.68 MBytes     
[  7][RX-C]   5.00-6.00   sec  1.10 GBytes  9.49 Gbits/sec               
[  5][TX-C]   6.00-7.00   sec  1.10 GBytes  9.49 Gbits/sec    0   1.68 MBytes     
[  7][RX-C]   6.00-7.00   sec  1.11 GBytes  9.49 Gbits/sec               
[  5][TX-C]   7.00-8.00   sec  1.10 GBytes  9.48 Gbits/sec    0   1.68 MBytes     
[  7][RX-C]   7.00-8.00   sec  1.10 GBytes  9.49 Gbits/sec               
[  5][TX-C]   8.00-9.00   sec  1.10 GBytes  9.49 Gbits/sec    0   1.69 MBytes     
[  7][RX-C]   8.00-9.00   sec  1.10 GBytes  9.49 Gbits/sec               
[  5][TX-C]   9.00-10.00  sec  1.10 GBytes  9.49 Gbits/sec    0   1.74 MBytes     
[  7][RX-C]   9.00-10.00  sec  1.10 GBytes  9.48 Gbits/sec               
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec  11.0 GBytes  9.49 Gbits/sec   66             sender
[  5][TX-C]   0.00-10.01  sec  11.0 GBytes  9.48 Gbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec  11.1 GBytes  9.50 Gbits/sec    0             sender
[  7][RX-C]   0.00-10.01  sec  11.0 GBytes  9.48 Gbits/sec                  receiver

iperf Done.
Bei dem Test liegt die CPU-Last auf dem Client bei 51%, auf dem Server bei 28%. Deshalb erscheint mir bei dir die CPU-Last deutlich zu hoch.
 
  • Gefällt mir
Reaktionen: JumpingCat
Hatte gestern nur die Gesamtlast vom Client angegeben. Wenn ich richtig schaue, dann habe ich zwischen 8 und 10% Last auf dem Client. 15% Last auf dem Server ohne Proxmox - da läuft ein Debian.

Also danach dürften die CPUs nicht das Problem sein. Die Leitungen in der Wand und vom Client zur Netzwerkdosen sollten auch passen.

Noch eine Idee, was ich testen könnte? Ansonsten muss ich vom Thema 10Gbit Abstand nehmen und die Sachen wieder zurückschicken. Als Briefbeschwerer brauche ich sie nicht.
 
Teutates schrieb:
Noch eine Idee, was ich testen könnte?
Viele:
1. Auf beiden Systemen mal lokal iperf3 als Server und Client testen, also "iperf3 -s" und "iperf3 -c localhost". Bei meinen Systemen komme ich auf ca. 60Gbit/s.
2. Kann man auf dem Server auch "nativ" den iperf3 Server starten, also außerhalb der Proxmox-VM?
3. Was läuft eigentlich auf dem Client? Sollte das Windows sein, mal etwas gescheites booten, sprich: Ubuntu oder Debian.
4. Den iperf3-Test mal mit Wireshark oder tcpdump mitschneiden, und dann mal schauen, ob es viele dunkel markierte Pakete gibt (was auf Paketverluste, also Übertragungsfehler hindeutet), oder eigentlich alles gut aussieht (was auf eine Softwarelimitierung hindeutet). In letzterem Fall auf die "Window" Werte der sendenden Seite schauen. Bei mir wächst das Receive Window auf ca. 3MB an.
6. iperf3-Tests in allen 3 Varianten (Client -> Server: iperf3 -c <server>, Server -> Client: iperf3 -c <server> -R, Client <-> Server: iperf3 -c <server> --bidir) ausführen. Kommt in allen 3 Varianten das gleiche heraus?
7. Adaptereinstellungen ändern. Auf Debian mit "ethtool" (root-Rechte erforderlich). Interessant sind die "Offloading" Einstellungen ("ethtool -k <adapter>" zum Anschauen) und die "Coalesce" Einstellungen ("ethtool -c <adapter>"). Welche Einstellmöglichkeiten bieten die Adapter? Pauschal könnte man mal etwas Offloading abschalten: "sudo ethtool -K <adapter> gro off gso off lro off" - wie wirkt sich das auf iperf3 aus?
 
Zuletzt bearbeitet:
Zurück
Oben