Tipp zum asymmetrischen Loadbalancing

Forum zu aktuellen Geräten der LANCOM Router/Gateway Serie

Moderator: Lancom-Systems Moderatoren

Antworten
escubic
Beiträge: 6
Registriert: 06 Jul 2018, 14:49

Tipp zum asymmetrischen Loadbalancing

Beitrag von escubic »

Hallo,

vielleicht ist uns schon einmal aufgefallen, dass Loadbalancing über zwei Leitungen, die unterschiedliche Bandbreite haben, nicht das erwünschte Ergebnis bringt: Die schwächere Leitung überlastet immer zuerst. Hier eine Erklärung der Ursache und ein Praxistipp wie sich das vermeiden lässt.

Ausgangslage: Wir haben zwei DSL-Leitungen mit unterschiedlicher Bandbreite, als Beispiel

Leitung A: 100 Mbit/s
Leitung B: 200 Mbit/s.

Wir wollen den Datenverkehr mit dem Lancom-Loadbalancer sinnvoll auf die beiden Leitungen verteilen und tragen dazu unter Schnittstellen/WAN die Bandbreiten 100.000 kbit/s und 200.000 kbit/s ein. Nach einiger Zeit stellen wir folgende Effekte fest:

- Der Loadbalancer verteilt den Traffic tatsächlich im langen Mittelwert im Verhältnis 1:2 auf die Leitungen, z.B. im Tagesmittel 10 Mbit/s auf A und 20 Mbit/s auf B.
- Dennoch überlastet Leitung A (die langsamere) immer zuerst - die Lastspitzen auf A erreichen 100 Mbit/s aber die auf B sind erst bei 141 Mbit/s.

Der Hintergrund ist dass Lancom den Traffic arithmetisch verteilt. Tatsächlich addieren sich nur die DATENMENGEN arithmetisch.
Die Spitzenbandbreiten des Datenstroms addieren sich jedoch nicht arithmetisch, sondern geometrisch.

Ein Datenstrom mit einer doppelten Durchschnitts-Bandbreite hat tatsächlich nur die Wurzel(2)-fache Spitzenbandbreite (wenn er rein stochastisch ist).

Allgemein addieren sich die Durchschnitts-Bandbreiten (=Datenmengen) zweier Datenströme A und B so:

A+B

Die Spitzen-Bandbreiten addieren sich aber geometrisch (wenn sie nicht korreliert sind):

Wurzel (A^2 + B^2)

Auch wenn A die halbe durchschnittliche Bandbreite (=Datenmenge) von B hat, sind die kurzzeitigen Bandbreitenspitzen im Datenstrom etwa Wurzel (1/2) so hoch wie die von B (also ca. 0,7 und nicht wie naiv erwartet 0,5).

Erhält die Leitung A also etwa die Hälfte der Daten von Leitung B, wird sie zuerst überlasten, da die Spitzenbandbreite auf A etwa die 0,7-fache Spitzen-Bandbreite von Leitung B ist. Für eine Überlast ist nämlich nicht die Durschnittsbandbreite (Datenmenge) sondern die kurzfristige Spitzenbandbreite entscheidend.

Um die Datenströme im Loadbalancer so zu verteilen, dass Leitung A und B optimal hinsichtlich der Spitzenbandbreite ausgelastet sind, sollte im Loadbalancer daher für Leitung B die 4-fache Bandbreite von Leitung A eingetragen werden, so dass die Bandbreitenspitzen auf B etwa Wurzel(4) = 2 also doppelt so hoch ausfallen als die auf Leitung A.

Allgemein sollte im Loadbalancer die Bandbreite so eingetragen werden, wenn B > A:

Download:
Leitung A: Bandbreite A
Leitung B: Bandbreite A * (B/A)^2

Im Falle der beiden DSL-Leitungen mit 100 Mbit/s und 200 Mbit/s sollten also 100 und 400 Mbit/s eingetragen werden. Die 2. Leitung erhält dann zwar die 4-fache Datenmenge, aber eben nur die Wurzel(4) = 2-fache Spitzenlast, so dass die beiden Leitungen hinsichtlich kurzzeitig auftretender Lastspitzen gerecht bedient werden.

Diese Überlegungen gelten nur für stochastische Datenströme, in der Regel sind Datenströme jedoch etwas untereinander korreliert (die User schalten alle zur gleichen Zeit Ihren PC ein, schlafen zur gleichen Zeit usw.). Bei einer teilweisen Korrelation sollte für Leitung B dann also ein Kompromiss aus o.a. Formel und der arithmetischen Verteilung eingetragen werden, im Beispiel vielleicht 100 und 300 Mbit/s
Antworten