W tym artykule omówimy kilka podstawowych pomysłów dotyczących równoważenia obciążenia, aby pomóc Ci zrozumieć, jak uzyskać najlepszą konfigurację dla swojej aplikacji.

Równoważenie obciążenia jest istotną częścią każdego wdrożenia aplikacji, aby zapewnić jej wysoką dostępność, wydajność i bezpieczeństwo. Skoncentrujemy się na zrozumieniu i wyborze algorytmów planowania i trwałości połączeń oraz wykorzystaniu nowej funkcji LoadMaster Network Telemetry do weryfikacji wyników.

Kluczowe zagadnienia:

  • Należy równoważyć połączenia, a nie przepustowości.
  • Aby wyrównać obciążenie w całej puli serwerów, musisz znaleźć odpowiednią kombinację planowania, trwałości i limitu czasu.

Krótkie wyjaśnienie planowania i trwałości połączenia

Podczas równoważenia obciążenia należy podjąć dwie główne decyzje:

  • Kiedy przychodzi nowe połączenie klienta, do którego serwera w puli powinno ono zostać wysłane? To właśnie kontroluje algorytm planowania.
  • Kiedy klient powraca w celu ponownego połączenia, w jaki sposób powinien zostać zidentyfikowany, aby można go było zwrócić na ten sam serwer, co ostatnim razem? To jest zadanie algorytmu trwałości.

Razem te dwa algorytmy kształtują wzorce ruchu w puli serwerów, a tym samym obciążenie każdego serwera.

Unikanie nierównego obciążenia

Chociaż planowanie i trwałość są prostymi pojęciami, błędne ich pomylenie może prowadzić do stanu zwanego nierównym równoważeniem obciążenia. Dzieje się tak, gdy obciążenie całej puli serwerów jest bardzo nierównomierne. Uniknięcie tego i uzyskanie równomiernej dystrybucji w całej puli serwerów jest głównym celem równoważenia obciążenia.

Ważną rolę odgrywają tu zarówno planowanie, jak i trwałość, a kluczem jest uzyskanie odpowiedniej kombinacji dla aplikacji.

Podstawowe metody równoważenia obciążenia

Istnieje kilka podstawowych metod, za pomocą których można osiągnąć jednolite obciążenie na wszystkich serwerach aplikacji, z których każda ma swoje zastosowania w zależności od scenariusza.

Algorytm karuzelowy (round robin)

Round Robin jest często używany jako domyślna metoda planowania, w której każde nowe połączenie jest przydzielane do następnego serwera w puli. Gdy każdy serwer otrzyma jedno połączenie, przechodzi z powrotem do początku listy i ponownie przechodzi do niej w pętli. Jest to najprostsza metoda planowania i jeśli połączenia są bardzo krótkie i równe, a aplikacja jest bezstanowa, może to działać dobrze bez większych problemów. W tym prostym przypadku nie potrzebujesz trwałości połączenia, a powtarzające się połączenia są nadal redystrybuowane w puli serwerów, dzięki czemu są dość równe.

Problemy zaczynają się pojawiać, gdy połączenia są nierównomierne i gdy sesje klienta trwają dłużej, na przykład gdy trzeba zachować stan sesji i używana jest trwałość (np. poczta internetowa lub sesja CRM). Może to z czasem spowodować bardzo nierównomierne obciążenie, ponieważ niektóre serwery są narażone na ciężkie i długotrwałe sesje, podczas gdy inne otrzymują lekkie i krótkotrwałe sesje. Z biegiem czasu liczba połączeń na serwer zaczyna być nierównomierna, podobnie jak obciążenie serwera.

Algorytm najmniejszej liczby połączeń (least connection)

Least Connection to kolejna metoda, która może lepiej wyrównać obciążenie w czasie. Zamiast przełączać pulę serwerów, Least Connection sprawdza liczbę bieżących połączeń na serwer i wybiera serwer z najmniejszą liczbą połączeń w tym czasie. Oznacza to, że w miarę upływu czasu przywraca równowagę połączeń na serwer i zapobiega ich zbytniemu, nierównemu obciążaniu.

Nawet w przypadku metody najmniejszej liczby połączeń możesz skończyć w bardzo nierównym stanie, gdy używana jest trwałość, ponieważ trwałość zastępuje planowanie dla klientów powracających. Wszystko zależy od tego, jak zidentyfikujesz powracające połączenie klienta. Źródłowy adres IP to powszechna i prosta metoda, ale w tym problem - jest zbyt prosta. Jeśli za urządzeniem NAT znajduje się duża liczba klientów, wszyscy pojawią się jako pojedynczy klient i wszyscy zostaną wysłani do tego samego serwera w puli. Może się to również zdarzyć, jeśli użytkownicy przychodzą z serwera terminali. Z drugiej strony klienci mobilni często zmieniają źródłowy adres IP, gdy wędrują po sieci i tracą stan sesji, ponieważ są ponownie równoważeni.

Aktywny plik cookie (active cookie)

W przypadku aplikacji internetowych użycie metody takiej jak Active Cookie jest znacznie lepszym sposobem identyfikacji poszczególnych użytkowników. Moduł równoważenia obciążenia wstrzykuje plik cookie z unikalnym identyfikatorem za każdym razem, gdy nowy klient otwiera sesję. Dzięki temu moduł równoważenia obciążenia może śledzić tego klienta w czasie, niezależnie od tego, skąd pochodzi jego ruch.

Ostatnim czynnikiem jest limit czasu trwałości połączenia. Kontroluje to, jak długo rekord trwałości klienta jest przechowywany, zanim zostanie ponownie zrównoważony na inny serwer. Zbyt krótki czas, a stan sesji klienta zostanie utracony, zbyt długi i istnieje ryzyko nagromadzenia się nierównego obciążenia na niektórych serwerach. Jeśli nie masz pewności, ustawienie 8-godzinnego okna jest bezpiecznym założeniem, aby wyrównać go ze standardowym dniem pracy, jednak najlepiej jest znać wzorce aplikacji i czas przebywania użytkownika w sesji. Dłuższe limity czasu trwałości oznaczają większą szansę na nierównomierne obciążenie serwerów.

Na tym prostym przykładzie widać, jak opcje planowania i trwałości połączenia wpływają na obciążenie, które gromadzi się na każdym serwerze i jak ważne jest zrozumienie wzorców aplikacji, aby uzyskać odpowiednią konfigurację.

Szczegółowe informacje na temat wszystkich metod planowania i metod trwałości można znaleźć w naszej Bazie wiedzy pomocy technicznej firmy Kemp.

Dostrajanie za pomocą telemetrii sieciowej

Dzięki nowej funkcji telemetrii sieciowej w LoadMaster możesz zmienić system równoważenia obciążenia w źródło danych o przepływie ruchu dla Twojego kolektora Flowmon. Dzięki temu możesz uzyskać natychmiastową informację zwrotną na pulpicie nawigacyjnym Flowmon na temat gromadzenia się połączeń i przepustowości na każdym serwerze i wykryć nierówne warunki równoważenia obciążenia. Umożliwia to łatwe monitorowanie i reagowanie w celu dostrojenia konfiguracji dla każdej aplikacji.

Kluczowe wskaźniki wydajności i statystyki ruchu na pulpicie nawigacyjnym Kemp Flowmon

Po stronie Flowmon Collector można utworzyć kompleksowy pulpit nawigacyjny, który pokazuje kluczowe metryki wydajności aplikacji na podstawie telemetrii sieciowej dostarczanej przez LoadMaster. Topologia aplikacji wizualizuje wykorzystanie przepustowości i pokazuje, czy ruch aplikacji jest równoważony w równym stopniu dla poszczególnych serwerów w puli. Wykres ruchu przedstawia metryki objętości i wydajności na osi czasu, aby zapewnić zrozumienie wzorców ruchu w obciążeniu aplikacji. Kluczowe wskaźniki wydajności, takie jak czas odpowiedzi serwera i czas podróży w obie strony, pozwalają rozróżnić problemy po stronie sieci i aplikacji, które są częstym źródłem wskazywania palcem między zespołami. Ponadto te metryki można porównać między poszczególnymi serwerami w puli i wskazać serwer, który może nie działać zgodnie z oczekiwaniami. Czołowe statystyki pokazują dane w podziale na klienta posortowane według najgorszego czasu odpowiedzi serwera, ilości przesłanych danych i liczby żądań (przepływów).

Podsumowanie

Bardzo ważne jest, aby pamiętać, że równoważysz połączenia, a nie przepustowość. Jeśli połączenia różnią się przepustowością, nawet połączenia na serwer nie będą równe przepustowości na serwer. Wybór odpowiedniej kombinacji planowania, trwałości i limitu czasu jest kluczem do równomiernego obciążenia puli serwerów.

Jeśli zauważysz, że cierpisz na nierówne równoważenie obciążenia i masz problemy z prawidłową konfiguracją, pamiętaj, że zawsze możesz skontaktować się z naszym, światowej klasy zespołem pomocy technicznej, aby uzyskać pomoc.

Czy chcesz samodzielnie wypróbować system równoważenia obciążenia Kemp? Wypróbuj bezpłatną wersję próbną Load Balancer. Jeśli napotkasz jakiekolwiek problemy, skontaktuj się z nami, a z przyjemnością pomożemy.

Oryginalna treść artykułu: https://www.flowmon.com/en/blog/understanding-load-balancing-essentials

.....................................................................................

Zainteresowały Cię rozwiązania Kemp Flowmon ?
Zapraszam do kontaktu

Marceli Matczak
Security / SDN Business Development Manager

+48 785 051 978
marceli.matczak@s4e.pl