Frage

Für UDP-Pakete mit einer Nutzlast weniger als 1470, ist es möglich, 1-Gbit-Durchsatz zu erreichen? Aufgrund der geringen Paketgröße, sollte es bei der Erreichung solchen Durchsatz (I / O, O, Netzwerk, etc.) einig Engpässe. Ich stelle mir Treiber und Hardware müssen möglicherweise zu kleinen Paket / hohem Durchsatz abgestimmt werden. Hat jemand 1Gbit Durchsatz mit kleinen UDP-Paketen erfolgreich erreicht versuchten?

War es hilfreich?

Lösung

Ich habe einige zuvor getan mit einem Durchsatz auf Gigabit-Verbindungen zu experimentieren auf relativ Standard-PC-Hardware, wenn auch nur überträgt dabei (über tcpreplay ) statt udp.

Der größte Engpass, dass ich selbst in nur immer Pakete an den NIC gefunden. Dies lässt sich durch Verwendung eines Hochgeschwindigkeits-Bus verbessert werden, um Ihre NIC-Schnittstelle (z. B. ein 4x PCI-Express-NIC). Aber auch bei dieser es war ein sehr definate Paket / Sekunde zu begrenzen. Offensichtlich Erhöhung der Paketgröße Sie erlauben würde, mehr von Ihrer Bandbreite zu nutzen, während der Prozessorlast zu reduzieren.

In der gleichen Richtung wie der Kommentar von Steve Moyer , gibt es eine theoretische Grenze für die Nutzung irgend Netzwerk. Bei meinen Versuchen (die auf ein völlig ruhiges Netzwerk gemacht wurden) Ich war ein Maximum von etwa (und nur aus der Spitze von meinem Gedächtnis) 900Mb / s zu sehen. Dies war mit CPU-Auslastung von 30 bis 40%.

Es ist wahrscheinlicher, dass die Begrenzung von Systemhardware auferlegt werden wird als Netzwerkinfrastruktur (zB PC). - jeder Netzwerk-Switch wert sein Salz sollte mit kleinen Paketen von Aufrechterhaltung vollen Geschwindigkeit Netzzugang fähig sein - auf jedem Fall zu viel höhere Preise als die meisten PCs können mit fertig werden.

Andere Tipps

Welche Art von Netzwerkverbindung verwenden Sie? Wenn Sie eine 1000BaseTX / Fx Link verwenden, erwarten Sie nicht mehr als 80% Durchsatz bei maximaler Größe Pakete. Wie Sie Ihre Paketgröße abnimmt, erhöht sich der Aufwand für den Abstand, Synchronisation, Ethernet-Header, IP-Header und UDP-Header in Bezug auf die Nutzlast und damit verschlechtert maximalen Durchsatz noch mehr.

Überprüfen Sie die Dokumentation für den Schalter Sie verwenden. Die Schalter sind in der Anzahl von Paketen pro Sekunde (pps) beschränkt sie liefern können und oft nicht 1Gbps aufrechterhalten, wenn Sie Pakete sind das Senden mit deutlich kleiner ist als die maximale Nutzlastgröße.

Eine andere Sache zu prüfen ist, ob die Netzwerkkarte Interrupt koaleszierende tut, und was ist die maximale Anzahl von Sende- / Empfangs Deskriptoren sie unterstützen kann. Auf dieser Ebene des Durchsatz die Interrupt-Service-Zeit und Kontext Schaltzeit einen großen Aufwand auf dem Host-System werden kann auch mit einem modernen CPU und Speichersystem.

Auch wenn Sie Gigabit über Kupfer verwenden, der kleinste Ethernet-Frame wird die Karte emittieren ist 512 Bytes, so kleinere Nachrichten werden auf diese Größe aufgefüllt werden. Dies ist wegen der Anforderungen für Trägererfassungs / Kollisionserkennung.

Ich habe festgestellt, Hardware hat eine deutlich geringere Paket pro Sekunde Grenze als die Netze theoretische Kapazität. Für ein Broadcomm BCM5704S schlug ich dies bei 69.000 pps im Vergleich zu 1,488,100pps von Gigabit.

Noch mehr Zahlen, die ich hier berichtet, http://code.google.com/p/openpgm /

Es gibt ein gutes Tutorial Netzwerkeinstellungen auf Tweaking (in Linux) echte Gigabit-Geschwindigkeit zu erreichen hier: http://datatag.web.cern.ch/datatag/howto/tcp.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top