Probleme beim Erreichen des 1Gbit UDP-Durchsatzes

8

Ist es für UDP-Pakete mit einer Nutzlast von weniger als 1470 möglich, 1 GBit Durchsatz zu erreichen? Aufgrund der kleinen Paketgröße sollte es einige Engpässe geben, um diesen Durchsatz zu erreichen (I / O, OS, Netzwerk, etc.). Ich stelle mir vor, dass Treiber und Hardware möglicherweise auf kleine Pakete / hohen Durchsatz abgestimmt werden müssen. Hat jemand erfolgreich versucht, 1Gbit Durchsatz mit kleinen UDP-Paketen zu erreichen?

    
PiNoYBoY82 19.09.2008, 02:46
quelle

5 Antworten

7

Ich habe vorher mit dem Durchsatz von Gigabit-Links auf relativ standardmäßiger PC-Hardware experimentiert, obwohl ich nur über tcpreplay gesendet habe. , anstatt UDP.

Der größte Engpass, den ich gefunden habe, bestand darin, Pakete nur zum NIC selbst zu bekommen. Dies kann erheblich verbessert werden, indem ein Hochgeschwindigkeitsbus als Schnittstelle zu Ihrem NIC verwendet wird (z. B. ein 4x PCI-Express-NIC). Aber auch damit gab es ein sehr definiertes Paket / Sekunde Limit. Wenn Sie die Paketgröße erhöhen, können Sie natürlich mehr Bandbreite nutzen und gleichzeitig die Prozessorlast reduzieren.

Ähnlich wie der Kommentar von Steve Moyer gibt es ein theoretisches Limit für die Verwendung von allen Netzwerk. In meinen Experimenten (die in einem vollkommen leisen Netzwerk durchgeführt wurden) sah ich ein Maximum von ungefähr 900 Mb / s (und nur von der Spitze meines Gedächtnisses). Dies war mit CPU-Lasten von 30 bis 40%.

Es ist wahrscheinlicher, dass die Begrenzung von Ihrer Systemhardware (dh PC) als von Ihrer Netzwerkinfrastruktur auferlegt wird - jeder Netzwerkschalter, der seinen Wert wert ist, sollte in der Lage sein, den vollen Netzwerkzugriff mit kleinen Paketen zu gewährleisten höhere Raten als die meisten PCs bewältigen können.

    
Andrew Edgecombe 20.09.2008, 12:05
quelle
3

Welche Art von Netzwerkverbindung verwenden Sie? Wenn Sie eine 1000BaseTx / Fx-Verbindung verwenden, erwarten Sie nicht mehr als 80% Durchsatz mit Paketen maximaler Größe. Wenn die Paketgröße abnimmt, erhöht sich der Overhead für Abstand, Synchronisation, Ethernet-Header, IP-Header und UDP-Header im Verhältnis zur Payload und verschlechtert dadurch den maximalen Durchsatz noch mehr.

    
Steve Moyer 19.09.2008 02:49
quelle
3

Überprüfen Sie die Dokumentation für den von Ihnen verwendeten Switch. Switches sind in der Anzahl der Pakete pro Sekunde (pps) eingeschränkt, die sie liefern können, und können oft 1GBps nicht aushalten, wenn Sie Pakete mit wesentlich weniger als der maximalen Nutzlastgröße senden.

Eine andere Sache, die Sie überprüfen sollten, ist, ob Ihre Netzwerkkarte Interrupts zusammenführt und welche maximale Anzahl von Sende- / Empfangsdeskriptoren sie unterstützen kann. Auf dieser Ebene des Durchsatzes können die Interrupt-Service-Zeit und die Kontextumschaltzeit selbst bei einer modernen CPU und einem neuen Speichersystem zu einem großen Mehraufwand für das Host-System werden.

Auch wenn Sie Gigabit über Kupfer verwenden, ist der kleinste Ethernet-Frame, den die Karte aussendet, 512 Byte groß, so dass kleinere Nachrichten auf diese Größe aufgefüllt werden. Dies liegt an den Anforderungen für die Trägererkennung / Kollisionserkennung.

    
sk. 19.09.2008 02:54
quelle
3

Ich habe festgestellt, dass die Hardware eine wesentlich geringere Paket-pro-Sekunde-Grenze hat als die theoretische Kapazität der Netzwerke. Bei einem Broadcomm BCM5704S habe ich das mit 69.000 pps verglichen mit 1.488.100pps Gigabit erreicht.

Einige weitere Zahlen, die ich hier gemeldet habe Ссылка

    
Steve-o 31.08.2010 20:54
quelle
0

Es gibt ein gutes Tutorial zum Optimieren der Netzwerkeinstellungen (unter Linux), um hier eine echte Gigabit-Geschwindigkeit zu erreichen: Ссылка

    
Lee H 19.09.2008 02:48
quelle

Tags und Links