Centrum wiedzy o technologiach i pracy w IT
load balancing

Load balancing, czyli optymalizacja wydajności i dostępności

Ostatnia aktualizacja 9 listopada, 2023

Wobec nieustannego postępu technologicznego, infrastruktura IT staje w obliczu coraz większych wyzwań związanych z obsługą rosnącej liczby użytkowników. Aby unikać przestojów i częstych awarii, ratunkiem staje się load balancing, który pozwala na efektywne zarządzanie obciążeniem w systemach informatycznych. W tym tekście przyjrzymy się bliżej, czym dokładnie jest load balancing oraz jakie znaczenie ma w dzisiejszej infrastrukturze IT.

Nie udało się zapisać Twojej subskrypcji. Spróbuj ponownie.
Udało się! Widzimy się niebawem – newsletter wysyłamy w każdy wtorek

Otrzymuj za darmo unikalne poradniki, dane i wiedzę o pracy w IT – dostarczane co tydzień

Klikając “Zapisz mnie” wyrażasz zgodę na otrzymywanie e-maili od redakcji, a także ofert partnerów oraz akceptujesz naszą Politykę prywatności.

Co to jest load balancing?

Głównym i niezwykle istotnym celem load balancingu jest prewencja przeciążenia pojedynczych zasobów. W przypadku jego wystąpienia mogłoby to prowadzić do drastycznego spadku wydajności lub nawet awarii całego systemu.

Load balancing na poziomie oprogramowania polega na wykorzystaniu specjalnych aplikacji do równoważenia obciążenia między różnymi zasobami lub serwerami. Te rozwiązania często działają jako reverse proxy, przekierowując ruch od klientów do odpowiednich serwerów docelowych.

Pod kątem rozwiązań hardware’owych load to wykorzystanie specjalnych urządzeń (np. load balancerów). Urządzenia są zaprojektowane specjalnie do tego celu i posiadają sprzętową infrastrukturę do przetwarzania ruchu sieciowego. Wśród nich można wymienić: F5 BIG-IP, Citrix ADC (dawniej NetScaler), czy też Barracuda Load Balancer.

Load balancer sprawia, że każdy zasób lub serwer bierze udział w obsłudze ruchu w sposób proporcjonalny, zapewniając tym samym harmonijne i efektywne funkcjonowanie infrastruktury IT.

Load balancing – różnice między warstwą aplikacji a warstwą sieciową

Równoważenie obciążenia na poziomie warstwy aplikacji i sieci ma swoje własne cechy i zastosowania:

  • Warstwa aplikacji: Równoważenie obciążenia na poziomie aplikacji odbywa się na poziomie protokołu aplikacji. Pozwala to na bardziej zaawansowane i elastyczne strategie i jest szczególnie przydatne w przypadku aplikacji webowych.
  • Warstwa sieciowa: Równoważenie obciążenia na poziomie sieci odbywa się na poziomie protokołu transportowego (np. TCP) i może być stosowane do dowolnych rodzajów ruchu sieciowego.

Dalsza część tekstu znajduje się pod materiałem wideo:

Metody i algorytmy load balancing

Istnieje wiele metod i algorytmów używanych do równoważenia obciążenia.

Round Robin

Round Robin to popularna metoda równoważenia obciążenia, która działa na zasadzie cyklicznego przekierowywania ruchu między serwerami, tworząc kolejkę. Każdy serwer na liście otrzymuje ruch w ustalonym porządku, a gdy jest on przekierowywany do konkretnego serwera, to ten serwer obsługuje żądanie. Następnie, gdy pojawia się kolejne żądanie, zostaje ono przekierowane do następnego serwera na liście, tworząc w ten sposób cykl.

Ta metoda jest prosta w implementacji i łatwa do zrozumienia, dlatego też jest popularna w prostych scenariuszach równoważenia obciążenia. Jednakże może być nieskuteczna w przypadku serwerów o różnych zdolnościach lub obciążeniach, ponieważ równomiernie rozkłada ruch bez uwzględniania rzeczywistej wydajności serwerów.

Least Connections

Algorytm Least Connections kieruje ruch do serwera o najmniejszej liczbie aktywnych połączeń w danym momencie. Jest to strategia, która ma na celu zapewnienie, że serwer z najmniejszym obciążeniem obsługuje nowe żądania, co teoretycznie pozwala na wykorzystanie pełnej wydajności każdego serwera w puli.

Ten algorytm jest szczególnie skuteczny w sytuacjach, gdzie serwery mogą różnić się od siebie pod względem wydajności lub obciążenia, ponieważ kieruje on ruch w kierunku serwera, który jest obecnie najmniej zajęty. Dzięki temu unika przeciążenia jednego serwera, gdy inne mają wolne zasoby.

Jednakże, istnieją pewne wyzwania związane z Least Connections. Algorytm ten wymaga monitorowania liczby aktywnych połączeń na każdym serwerze. Może to generować dodatkowe obciążenie w systemie i wymagać bardziej zaawansowanej implementacji. Ponadto, w niektórych przypadkach może wystąpić efekt “thundering herd”, gdzie wiele żądań naraz kieruje się w kierunku serwera z najmniejszą liczbą połączeń. Może to prowadzić do krótkotrwałego przeciążenia.

Weighted Round Robin

Weighted Round Robin wprowadza element wag w procesie kierowania ruchu do serwerów. W przeciwieństwie do klasycznego Round Robin, gdzie każdy serwer otrzymuje ruch w równych częściach, Weighted Round Robin umożliwia przypisanie różnych wag każdemu serwerowi w puli. Wagi te określają, ile ruchu każdy serwer może obsłużyć i wpływają na częstość, z jaką serwer ten będzie wybierany.

Koncepcja wag jest szczególnie przydatna w przypadku serwerów o różnych zdolnościach lub wydajności, gdy nie wszystkie serwery są równie zdolne do obsługi takiej samej ilości ruchu. Serwerom o wyższej wydajności można przypisać większą wagę, co sprawia, że będą one wybierane częściej niż serwery o mniejszej wadze. To pozwala na bardziej efektywne wykorzystanie zasobów i zminimalizowanie ryzyka przeciążenia słabszych serwerów.

Weighted Least Connections

Weighted Least Connections łączy cechy Weighted Round Robin z uwzględnieniem liczby aktywnych połączeń na serwerach. Podobnie jak w Weighted Round Robin, serwerom przypisywane są wagi, które wpływają na częstość przekierowywania ruchu. Jednak w przypadku Weighted Least Connections algorytm uwzględnia również aktualną liczbę aktywnych połączeń na każdym serwerze.

To podejście pozwala na jeszcze bardziej precyzyjne równoważenie obciążenia, ponieważ serwery o wyższych wagach i niższej liczbie aktywnych połączeń mają większą szansę na otrzymanie nowych żądań. Dzięki temu serwery, które są mniej obciążone, obsługują więcej ruchu, podczas gdy te bardziej obciążone są odciążane.

Weighted Least Connections jest szczególnie skuteczny w sytuacjach, w których serwery różnią się zarówno wydajnością, jak i aktualnym obciążeniem. Ten algorytm umożliwia elastyczne zarządzanie ruchem i zapewnia optymalne wykorzystanie zasobów serwerów. Jednakże jego implementacja jest bardziej zaawansowana niż w przypadku prostszego Weighted Round Robin, ponieważ wymaga monitorowania liczby aktywnych połączeń na bieżąco i dostosowywania wag w zależności od zmieniających się warunków.

Czytaj także:

Dowiedz się, co to jest serwer. Poznaj typy i technologie obsługi.

Algorytmy – czym są i gdzie z nich korzystamy

Z tymi metodami zwiększysz wydajność w pracy

Ataki DDoS – mechanizm, rodzaje i sposoby obrony

Total
0
Shares
_podobne artykuły