2008-09-19 9 views
8

Für UDP-Pakete mit einer Nutzlast von weniger als 1470, ist es möglich, 1Gbit 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?Probleme beim Erreichen von 1Gbit UDP Durchsatz

+0

Eine detailliertere Beschreibung der Netzwerktopologie Verwendung mit Vorschlägen helfen ... –

Antwort

7

Ich habe vorher einige Experimente mit dem Durchsatz auf Gigabit-Links auf relativ Standard-PC-Hardware gemacht, wenn auch tun nur über (statt über UDP) (über tcpreplay).

Der größte Engpass, den ich fand, war nur Pakete an die 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.

Entlang den gleichen Zeilen wie der Kommentar von Steve Moyer gibt es eine theoretische Grenze für die Nutzung eines Netzwerks. 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 durch Ihre Systemhardware (dh PC) als Ihre Netzwerkinfrastruktur auferlegt wird - jeder Netzwerkschalter, der seinen Wert wert ist, sollte den vollen Netzwerkzugriff mit kleinen Paketen aufrechterhalten können - sicherlich bei viel höhere Raten als die meisten PCs bewältigen können.

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.

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 aufrechterhalten, wenn Sie Pakete mit wesentlich weniger als der maximalen Nutzlastgröße senden.

Eine andere Sache zu prüfen ist, ob Ihre Netzwerkkarte Interrupt Koaleszenz tut, und was ist die maximale Anzahl der Sende/Empfangs-Deskriptoren, die es unterstützen kann. Bei diesem Durchsatzniveau kann die Interrupt-Service-Zeit und die Kontextumschaltzeit selbst bei einem modernen CPU- und Speichersystem ein großer Aufwand für das Host-System werden.

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

3

Ich habe festgestellt, dass Hardware eine deutlich geringere Paket-pro-Sekunde-Grenze als die theoretische Kapazität des Netzwerks hat. Bei einem Broadcomm BCM5704S erreichte ich dies bei 69.000 pps im Vergleich zu 1.488.100pps Gigabit.

Einige weitere Zahlen, die ich hier berichtet, würde http://code.google.com/p/openpgm/