Udostępnij za pośrednictwem


Równoważenie obciążenia

Równoważenie obciążenia w szerokim sensie jest jednym z filarów środowiska uruchomieniowego Orleans . Orleans środowisko uruchomieniowe próbuje zapewnić równowagę, ponieważ równoważenie pozwala zmaksymalizować użycie zasobów i uniknąć hotspotów, co prowadzi do lepszej wydajności, a także pomaga w elastyczności. Równoważenie obciążenia w Orleans systemie ma zastosowanie w wielu miejscach. Poniżej znajduje się niewyczerpująca lista miejsc, w których środowisko uruchomieniowe wykonuje równoważenie:

  1. Domyślna strategia umieszczania aktorów jest losowa, nowe aktywacje są umieszczane losowo w silosach. Powoduje to zrównoważone umieszczanie i zapobiega hotspotom w większości scenariuszy.
  2. Bardziej zaawansowane ActivationCountBasedPlacement próbuje wyrównać liczbę aktywacji na wszystkich silosach, co powoduje bardziej równomierny rozkład aktywacji w silosach. Jest to szczególnie ważne dla elastyczności.
  3. Usługa katalogowa ziarna jest oparta na rozproszonej tabeli skrótów, która z założenia jest zrównoważona. Usługa katalogowa mapuje ziarna na aktywacje, każdy silos jest właścicielem części globalnej tabeli mapowania, a ta tabela jest globalnie partycjonowana w zrównoważony sposób we wszystkich silosach. W tym celu używamy spójnego tworzenia skrótów z zasobnikami wirtualnymi.
  4. Klienci łączą się ze wszystkimi bramami i rozpowszechniają żądania między nimi w zrównoważony sposób.
  5. Usługa przypomnienia jest rozproszoną usługą środowiska uruchomieniowego partycjonowanego. Przypisanie silosu jest odpowiedzialne za służyć, które przypomnienie jest zrównoważone we wszystkich silosach za pośrednictwem spójnego tworzenia skrótów, podobnie jak w katalogu ziarna.
  6. Składniki krytyczne dla wydajności w silosie są partycjonowane, a praca między nimi jest lokalnie zrównoważona. Dzięki temu środowisko uruchomieniowe silosu może w pełni wykorzystać wszystkie dostępne rdzenie procesora CPU, a nie tworzyć wąskich gardeł w silosie. Dotyczy to wszystkich zasobów lokalnych: alokacji pracy do wątków, gniazd, obowiązków wysyłania, kolejek itp.
  7. Moduł QueueBalancerBase równoważy odpowiedzialność za ściąganie zdarzeń z kolejek trwałości między silosami w klastrze.

Równoważenie niekoniecznie oznacza utratę lokalności. Można je zrównoważyć i nadal utrzymywać dobrą lokalność. Na przykład w przypadku równoważenia oznacza partycjonowanie/partycjonowanie, można podzielić odpowiedzialność za określone zadanie logiczne, zachowując jednocześnie lokalność w ramach każdej partycji. Dotyczy to zarówno równoważenia lokalnego, jak i rozproszonego.