Lastverteilung
Mit Lastverteilung (engl. load balancing) werden Verfahren beschrieben, um bei Computern umfangreiche Berechnungen oder große Mengen von Anfragen auf mehrere parallel arbeitende Systeme zu verteilen.
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 in Computerclustern. Hierbei bilden mehrere Rechner einen Verbund, der sich nach außen wie ein einzelnes System verhält. Einige mögliche Verfahren sind das Vorschalten eines Computers, der die Anfragen aufteilt oder die Verwendung von Round Robin DNS.
Lastverteilung findet auch bei großen Server-Farmen statt, die z.B. der Beantwortung von HTTP-Anfragen dienen. Dort sind Systeme vorgeschaltet, die nach festgelegten Kriterien die einzelnen Anfragen auf die Backend-Server verteilen. Dabei können zusätzliche Informationen aus dem HTTP-Request verwendet werden, um alle zu einer Session mit einem Benutzer gehörenden Pakete an den gleichen 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.
Eine gute Umsetzung einer Lastverteilung erfordert immer Informationen darüber, wie die Auslastung der Zielsysteme aussieht.
siehe auch: Computercluster, SMP, Content-Switch, Akamai