Datenübertragungsrate von Switches

Kullberg

Computer Schach Freak
Thread Starter
Mitglied seit
18.02.2005
Beiträge
5.896
Ich bin dabei (eigentlich bin ich schon fertig), ein server/client tool in C++ zu schreiben. Daneben, dass der Server meinen ganzen Cluster kontrolieren muss, muss er auch möglichst schnell und zuverlässig Daten übertragen. Nun hab ich mit einen Test gemacht, um die maximale Datenrate zu testen. Wenn ich zu localhost verbinde (also kein Netzwerk dazwischen), komme ich auf ~260 MB/s - nicht berauschend, aber OK für Daten, die in 25 Byte Paketen gelesen werden. Über das Netzwerk kriege ich unterschiedliche Datenraten, je nach Switch, der zwischen den Computern ist. Ich hab einen Level One GSW 2440, da kriege ich ohne Jumbo Frames 12 MB/s, mit ~23 MB/s. Dann hab ich noch nen HP 1800-24G, mit dem kriege ich mit Jumbo Frames ~60 MB/s - ohne hab ich nicht getestet, da es ja dadurch nicht besser werden kann. Aber natürlich hätte ich lieber mehr - 100 MB/s wären schon sehr angenehm.
Nun die Frage an die Netzwerk Profis: kann ich mit nem besseren Switch noch mehr rausholen? Der Level One fliegt sowieso raus, das ist schon beschlossene Sache. Aber gibt es was Schnelleres als den nicht mehr ganz taufrischen HP 1800-24G? Oder bin ich da an der Grenze, was mit TCP machbar ist?
Auf der Software Seite wird wohl nicht mehr viel drin sein - die Jumbo Frames werden fast immer voll ausgenutzt und asynchrone sockets verwende ich auch.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Dein Problem ist nicht das Switch.

Ich komme auf >100MB/s, sowohl beim 1410-16G als auch beim 1810-24G.
(SMB2 Transfer)

ICh würde an deiner Stelle mal das Jumbo weglassen und nochmal benchen.
Idealer Weise mit NetIO.
 
Ohne Jumbo frames gehen mit dem HP 1800-24G auch nur 12 - 13 MB/s. Wenn ich normal Daten kopiere, gehen 100 MB/s sowohl beim HP als auch beim Level One durch - aber eben nicht bei meinem Server/Client tool.
 
Was ist denn die Quelle?
Also ich mein, wenn du sagst, du ließt 25Byte Blöcke, wo liegen diese?

Im RAM der Quellkiste, oder auf den HDDs?
Das könnte mit HDDs problematisch werden, denn HDDs lesen üblicherweise 512Byte Blöcke... Je nach Alignment und Raideinstellungen auch mehr.
Auch helfen SSDs nur sehr sehr bedingt bei ganz kleinen Datenmengen... Denn dort bringt deren Datenrate massiv weg.


Was vllt auch helfen könnte, wäre QoS zu nutzen. Sofern der Switch selbst die Bandbreite limitiert, weil anderer Traffic mit reinfunkt.
Man muss aber bedenken, das TCP IP Traffic halt doch etwas umständlich ist, für sowas... Denn es werden für so ne kleine Datenmenge noch heiden weitere Pakete versendet um den Verkehr erstmal aufzubauen. Baust du nun jeweils immer eigene Verbindungen für die 25Byte Pakete auf, steigt der Overhead massiv an.
Vllt wäre es mal einen Test wert, mehrere 25 Byte Pakete zusammen zu fassen um ein größeres Paket bzw. nen sequenziellen Paketfluss zu erreichen. Dann sollte auch die Datenrate massiv steigen.
 
Zuletzt bearbeitet:
Die Quelle ist ein Mini-Programm, was eine Schach-engine simuliert und fortlaufend 24Byte (+return) lange Informationen produziert. Der Server liest die Informationen und sendet sie in relativ großen (durchschittlich 230 KB) Paketen zusammengefasst. Die Jumbo Frames sind also voll und der Overhead hält sich in engen Grenzen.
Ich hab nach ner kleinen Software Änderung jetzt 75 MB/s - aber noch mehr wäre natürlich noch besser ;)
 
Update: mit Software Verbesserungen bin ich auf 91 MB/s gekommen. Mit meinem neuen HP 2510G-48 komme ich auf 123 MB/s :)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh