Skip to main content

Load Balancing - Lastverteilung

Mittels Lastverteilung (englisch Load Balancing) werden in der Informatik umfangreiche Berechnungen oder große Mengen von Anfragen auf mehrere parallel arbeitende Systeme verteilt. Dies kann sehr unterschiedliche Ausprägungen haben. Eine einfache Lastverteilung findet zum Beispiel auf Rechnern mit mehreren Prozessoren statt. Jeder Prozess kann auf einem eigenen Prozessor ausgeführt werden. Die Art der Verteilung der Prozesse auf Prozessoren kann dabei einen großen Einfluss auf die Gesamtperformance des Systems haben, da z. B. der Cache-Inhalt lokal für jeden Prozessor ist.

Ein anderes Verfahren findet man bei Computerclustern bzw. Servern. Hierbei bilden mehrere Rechner einen Verbund, der sich nach außen meistens wie ein einzelnes System verhält. Einige mögliche Verfahren sind das Vorschalten eines Systems (Load Balancer, Frontend Server), der die Anfragen aufteilt, oder die Verwendung von DNS mit dem Round-Robin-Verfahren. Insbesondere bei Webservern ist eine Serverlastverteilung wichtig, da ein einzelner Host nur eine begrenzte Menge an HTTP-Anfragen auf einmal beantworten kann. Der dabei vorgeschaltete Load Balancer fügt der HTTP-Anfrage zusätzliche Informationen hinzu, um Anfragen desselben Benutzers an denselben Server zu schicken. Dies ist auch bei der Nutzung von SSL zur Verschlüsselung der Kommunikation wichtig, damit nicht für jede Anfrage ein neuer SSL-Handshake durchgeführt werden muss.

Lastverteilung wird ebenfalls bei Daten-/Sprachleitungen verwendet, um den Verkehrsfluss auf parallel geführte Leitungen zu verteilen. In der Praxis treten jedoch häufig Probleme dabei auf, den Daten-/Sprachverkehr gleichmäßig auf beide Leitungen zu verteilen. Es wird daher meist die Lösung implementiert, dass eine Leitung als Hin- und die zweite Leitung als Rückkanal Verwendung findet.

Load Balancing geht oft einher mit Mechanismen zur Ausfallsicherheit: Durch den Aufbau eines Clusters mit entsprechender Kapazität und der Verteilung der Anfragen auf einzelne Systeme erreicht man eine Erhöhung der Ausfallsicherheit, sofern der Ausfall eines Systems erkannt und die Anfragen automatisch an ein anderes System abgegeben werden (siehe auch: Hochverfügbarkeit bzw. High-Availability, „HA“).