Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

load balancing

Termin Definicja
load balancing

Load balancing to technika rozkładania obciążenia na wiele zasobów w celu zwiększenia wydajności i odporności na awarie.

Na czym polega rozkładanie ruchu między zasoby

Load balancing, czyli równoważenie obciążenia, polega na kierowaniu żądań do kilku zasobów wykonujących tę samą funkcję. Zasobem może być serwer aplikacyjny, instancja usługi, łącze sieciowe, proces obliczeniowy albo urządzenie obsługujące ruch w określonym segmencie infrastruktury. Komponent rozdzielający ruch nazywa się load balancerem. Odbiera on połączenie lub żądanie od klienta, wybiera jeden z dostępnych zasobów i przekazuje do niego dalszą komunikację. Dzięki temu pojedynczy element nie musi obsługiwać całego ruchu.

Równoważenie obciążenia nie oznacza zawsze idealnego podziału liczby żądań. Poszczególne operacje mogą wymagać różnej ilości pamięci, czasu procesora lub dostępu do dysku. Algorytm round-robin przekazuje kolejne żądania do następnych zasobów w ustalonej kolejności, natomiast metoda weighted round-robin uwzględnia przypisane wagi. Zasób o większej wadze otrzymuje większą część ruchu. Stosuje się również wybór serwera z najmniejszą liczbą aktywnych połączeń, z najmniejszym przewidywanym opóźnieniem albo z uwzględnieniem aktualnych parametrów zdrowia usługi.

Algorytmy wyboru i kontrola dostępności

Skuteczny load balancing wymaga nie tylko algorytmu rozdzielania ruchu, lecz także sprawdzania, czy dany zasób rzeczywiście może obsługiwać żądania. Służą do tego mechanizmy health check. Mogą one nawiązywać połączenie z określonym portem, wysyłać żądanie HTTP do wskazanej ścieżki albo weryfikować odpowiedź aplikacji. Sam fakt, że system odpowiada na połączenie TCP, nie dowodzi jeszcze poprawnego działania aplikacji. Usługa może przyjmować połączenia, ale zwracać błędy z powodu braku dostępu do bazy danych, pełnego dysku lub niedostępnego komponentu zależnego.

Po wykryciu nieprawidłowej odpowiedzi load balancer może tymczasowo wycofać zasób z puli. Nowe żądania są wówczas kierowane do pozostałych elementów. Po kilku poprawnych testach zasób może zostać ponownie dopuszczony do obsługi. Znaczenie mają tu parametry takie jak częstotliwość testów, limit czasu odpowiedzi, liczba kolejnych nieudanych prób oraz liczba poprawnych prób potrzebnych do przywrócenia. Zbyt rzadkie testy opóźniają reakcję na awarię, a zbyt czułe ustawienia mogą powodować niepotrzebne wyłączanie zasobów przy chwilowych opóźnieniach.

Warstwa sieciowa, sesje i terminacja TLS

Równoważenie może odbywać się na różnych warstwach komunikacji. Load balancer warstwy 4 analizuje przede wszystkim informacje transportowe, takie jak adres IP, port i stan połączenia TCP. Nie musi rozumieć treści żądania HTTP, dlatego może obsługiwać także inne protokoły oparte na TCP lub UDP, zależnie od zastosowanego rozwiązania. Load balancer warstwy 7 interpretuje protokół aplikacyjny, na przykład HTTP, i może podejmować decyzję na podstawie hosta, ścieżki URL, metody żądania lub nagłówków.

Ważnym zagadnieniem jest utrzymanie sesji. Jeżeli aplikacja przechowuje stan użytkownika lokalnie na jednym serwerze, kolejne żądanie skierowane do innego zasobu może spowodować utratę kontekstu. Stosuje się wtedy tak zwaną sesję lepką, czyli kierowanie danego klienta przez pewien czas do tego samego zasobu. Takie rozwiązanie ogranicza swobodę równoważenia i może prowadzić do nierównego obciążenia. Alternatywą jest przeniesienie stanu do wspólnego mechanizmu dostępnego dla wszystkich instancji aplikacji, ale sama technika load balancing nie zapewnia automatycznie synchronizacji danych.

Load balancer może także kończyć połączenia TLS po stronie klienta, odszyfrowywać ruch i przekazywać go dalej do zasobów wewnętrznych. W takim układzie to on obsługuje certyfikat, negocjację parametrów szyfrowania i część kosztu obliczeniowego. Możliwe jest również przekazywanie szyfrowanego ruchu bez terminacji TLS, lecz wtedy urządzenie rozdzielające ma mniej informacji o warstwie aplikacji. Przy diagnozowaniu problemów trzeba ustalić, w którym miejscu kończy się szyfrowanie, gdzie powstają nagłówki przekazywanego klienta oraz który element odpowiada za certyfikat.

Objawy nieprawidłowego równoważenia i zakres diagnostyki

Problemy z load balancingiem mogą objawiać się nierównomiernym wykorzystaniem zasobów, okresowymi błędami HTTP, wzrostem czasu odpowiedzi albo sytuacją, w której część użytkowników otrzymuje poprawną odpowiedź, a część trafia na niedziałającą instancję. Przyczyną może być błędny algorytm, nieaktualna lista zasobów, niepoprawny health check, różna konfiguracja poszczególnych instancji lub utracona sesja. Samo ponowne uruchomienie komputera klienckiego zwykle nie rozstrzyga, czy problem powstaje po stronie urządzenia, sieci, load balancera czy usługi zaplecza.

Diagnostyka powinna obejmować porównanie odpowiedzi uzyskiwanych z różnych zasobów, analizę kodów błędów, czasów odpowiedzi i liczby aktywnych połączeń. Należy sprawdzić, czy wszystkie instancje używają zgodnej konfiguracji aplikacji, czy test zdrowia bada właściwy endpoint oraz czy urządzenie nie kieruje ruchu do zasobu, który odpowiada technicznie, ale nie wykonuje poprawnie operacji biznesowej. Przydatne są dzienniki load balancera, aplikacji i systemu operacyjnego, a także informacje o zmianach konfiguracji, certyfikatach, trasach sieciowych i regułach zapory.

W przypadku komputera użytkownika objawy mogą być pośrednie: przeglądarka może zgłaszać przekroczenie czasu oczekiwania, błędne przekierowanie lub zerwanie połączenia, mimo że lokalny system działa prawidłowo. Wtedy warto oddzielić problemy z lokalną kartą sieciową, sterownikiem, konfiguracją DNS i zaporą od awarii występującej dopiero po stronie infrastruktury usługowej. Naprawa laptopa lub komputera PC może usunąć przyczynę lokalną, lecz nie zastąpi analizy konfiguracji serwerowego mechanizmu równoważenia, jeśli błędy występują niezależnie od używanego urządzenia.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę