Frage

Warum mehrere Verbindungen aus dem gleichen Host erreiche besseren Durchsatz als mehr Verbindungen von verschiedenen Hosts?

Ich vermute, ist etwas von Kernel-(Linux), aber eine Bestätigung würde viel helfen.

Weitere Details I 1 Empfänger Prozess haben, nennen wir es R. Es eingehende Verbindungen akzeptiert und empfängt Daten mit select ().

Ich habe 3 Sender Prozesse S1, S2, S3. Sie verbinden sich R und Sendedaten mit einer festen Rate, d.h. 200Mbit pro Sekunde jeweils.

Wenn S1, S2 und S3 auf der gleichen Maschine sind, ich bessere Ergebnisse als jede von ihnen auf einer anderen Maschine mit. (R ist in beiden Fällen auf einer anderen Maschine)

Beispiel: R auf host0, S1, S2, S3 auf Host2 erhält R bei 600Mbit / s

R auf host0, S1 auf host1, S2 auf Host2, S3 auf host3 erhält R bei 480Mbit / s

Das sieht kontraintuitiv für mich, erwartete ich das Gegenteil, da im zweiten Fall Absender müssen die Netzwerkkarte nicht teilen und den Prozessor (nicht erwartet Prozessor oder Netzwerkkarte Engpässe sein ...)

[Die Gastgeber oben sind Knoten in einem Linux-Cluster mit einem dedizierten Vollduplex-Gigabit-Switch. Sie laufen 2.6.24-24-generic (neueste Ubuntu i guess)]

War es hilfreich?

Lösung

Dies ist wahrscheinlich, weil, wenn der Absender alle auf einer Maschine ist, werden die ausgehenden Pakete all schön Warteschlangen und schickten ein-at-a-time (nur auf Grund der Tatsache, dass sie alle gehen durch eine NIC sind).

Während in dem Multiple-Absendern Fall zwei Maschinen werden oft Pakete zur gleichen Zeit senden, und es ist dann an den Netzwerk-Switch sie in der Warteschlange. Dies manifestiert sich auf das Senden von TCP als jittery Latenz -. Manchmal wird ein Paket direkt durch zu dem Empfänger umgeschaltet werden, ein anderes Mal wird es für ein oder zwei Pakete, die von den anderen Sendern innerhalb der Schalterwarteschlangen warten müssen

Ich gehe davon aus, dass die Latenz-Jitter auf seine eigene ausreichen würde, dass viel von Ihrer Bandbreite zu klopfen - denken Sie daran, dass 200Mbps zu erhalten mit Standard-TCP-Fenster, müssen Sie ein Minimum Round-Trip-Zeit von 2.6ms, die ziemlich eng ist .

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