Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Loadbalancing auf mehrere Instanten einer Applikation auf einem einzigen Host

1 view
Skip to first unread message

Marc Haber

unread,
Feb 4, 2012, 5:23:34 PM2/4/12
to
Hallo,

gegeben sei ein 32-Core-Server und eine Applikation, die zwar threaded
ist, sich aber bei Überschreiten einer gewissen Last gegenseitig auf
den Füßen steht, so dass die 32-Core-Kiste unter Last langsamer ist
als eine zwei Jahre ältere Acht-Core-Maschine.

Den erwarteten Geschwindigkeitsgewinn bekommt man, wenn man mehrere
Instanzen der Applikation parallel startet und jeder Instanz einen
eigenen Lastgenerator. Die Skalierung ist dann fast linear, so soll es
sein.

Naheliegende Lösung: Man nehme zusätzlich zur instanziierten
Applikation einen Software-Loadbalancer und balanciere den eingehenden
Traffic auf die vier Instanzen. Ich habe hier den Weg gewählt, jeder
Instanz eine eigene IP-Adresse zu geben (weil das schon von den Tests
mit vier Lastgeneratoren so eingestellt war).

Leider funktioniert es nicht so einfach.

ipvs versucht schlauer zu sein als ich selbst und erkennt, dass die
Real-Server-IP auf der lokalen Kiste ist und gibt mir Methode "Local"
statt Methode "Masq". Ein an die VIP eingehender Request wird mit ICMP
port unreachable beantwortet und die Applikation sieht das Paket nie.
Mit mehr als einem "Real" Server habe ich es dann nicht mehr probiert.

iptables --match statistic --method nth --every n --packet (0-n-1)
funktioniert, so lange man die Requests manuell abschickt; unter dem
Lastgenerator jedoch landen doch alle Requests wieder bei derselben
Instanz. Ich vermute, dass hier das Conntrack durcheinander kommt,
denn die Paketzähler in der NAT-Table steigen nicht, während der
Lastgenerator läuft.

Mein nächster Versuch wird sein, die Instanzen der Applikation mit LXC
in einen anderen Netzwerk-Namespace zu schieben, damit der im Host
laufende ipvs nicht mehr mitbekommt, dass er hier mit dem eigenen
System spricht. Allerdings würde ich mir die damit verbundene Pflege
von zwei Systemen nur sehr ungerne ans Bein binden.

Gibt es elegantere Methoden?

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
0 new messages