Eksplorowanie najlepszych rozwiązań dotyczących automatycznego skalowania

Ukończone

Jeśli nie przestrzegasz dobrych rozwiązań podczas tworzenia ustawień autoskalowania, możesz utworzyć warunki, które prowadzą do niepożądanych wyników. W tej lekcji dowiesz się, jak uniknąć tworzenia reguł, które powodują konflikt ze sobą.

Pojęcia dotyczące automatycznego skalowania

  • Ustawienie skalowania automatycznego skaluje instancje poziomo, co odbywa się na zewnątrz przez zwiększenie liczby instancji i do wewnątrz przez zmniejszenie liczby instancji. Ustawienie autoskalowania ma maksymalną, minimalną i domyślną wartość wystąpień.

  • Zadanie skalowania automatycznego zawsze odczytuje skojarzoną metrykę do skalowania, sprawdzając, czy przekroczył skonfigurowany próg skalowania na zewnątrz lub skalowania do wewnątrz.

  • Wszystkie progi są obliczane na poziomie instancji. Na przykład "zwiększanie skali o jedno wystąpienie, gdy średnie zużycie CPU wynosi > 80% przy liczbie wystąpień równej 2", oznacza zwiększanie skali, gdy średnie zużycie CPU we wszystkich wystąpieniach jest większe niż 80%.

  • Wszystkie sukcesy i niepowodzenia autoskalowania są rejestrowane w dzienniku aktywności. Następnie można skonfigurować alert dziennika aktywności, aby otrzymywać powiadomienia za pośrednictwem poczty e-mail, wiadomości SMS lub webhooków za każdym razem, gdy wystąpi aktywność.

Najlepsze rozwiązania dotyczące automatycznego skalowania

Podczas tworzenia reguł skalowania automatycznego należy użyć poniższych najlepszych rozwiązań.

Upewnij się, że wartości maksymalne i minimalne są różne i mają odpowiedni margines między nimi

Jeśli masz ustawienie, które ma wartość minimalną= dwie, maksimum= dwa, a bieżąca liczba wystąpień to dwa, nie może wystąpić żadna akcja skalowania. Zachowaj odpowiednią różnicę między maksymalną a minimalną liczbą wystąpień, wliczając obie wartości. Funkcja automatycznego skalowania zawsze działa w ramach tych limitów.

Wybierz odpowiednią statystykę dla metryki diagnostycznej

W przypadku metryk diagnostycznych można wybrać jedną z opcji Average, Minimum, Maximum i Total jako metrykę do skalowania. Najbardziej typową statystyką jest Średnia.

Starannie wybieraj progi dla wszystkich typów metryk

Zalecamy staranne wybieranie różnych progów dla skalowania poziomego i pionowego na podstawie praktycznych sytuacji.

Nie zalecamy ustawień automatycznego skalowania, takich jak następujące przykłady z tymi samymi lub podobnymi progami dla warunków skalowania na zewnątrz i do wewnątrz:

  • Zwiększ liczbę wystąpień o jeden, gdy Thread Count >= 600
  • Zmniejsz liczbę wystąpień o jedną liczbę, gdy liczba wątków <= 600

Przyjrzyjmy się przykładowi tego, co może prowadzić do zachowania, które może wydawać się mylące. Rozważmy następującą sekwencję.

  1. Załóżmy, że na początku istnieją dwa wystąpienia, a następnie średnia liczba wątków na wystąpienie rośnie do 625.
  2. Skalowanie automatyczne dodaje trzecie wystąpienie.
  3. Następnie załóżmy, że średnia liczba wątków w wystąpieniu spadnie do 575.
  4. Przed skalowaniem w poziomie autoskalowanie próbuje oszacować stan końcowy, jeśli został on przeskalowany. Na przykład 575 x 3 (bieżąca liczba wystąpień) = 1725 / 2 (ostateczna liczba wystąpień w przypadku skalowania w pionie) = 862,5 wątków. Oznacza to, że automatyczne skalowanie będzie musiało natychmiast skalować na zewnątrz, nawet po skalowaniu do środka, jeśli średnia liczba wątków pozostaje taka sama lub spada tylko nieznacznie. Jednak w przypadku ponownego skalowania w poziomie cały proces powtarza się, co prowadzi do nieskończonej pętli.
  5. Aby uniknąć tej sytuacji (nazwanej "flapping"), autoskalowanie w ogóle nie zmniejsza liczby instancji. Zamiast tego pominie i ponownie zszacuje warunek przy następnym wykonaniu zadania usługi.

Szacowanie podczas skalowania w dół ma na celu uniknięcie sytuacji częstych zmian, w których akcje skalowania w dół i w górę ciągle się zmieniają. Należy pamiętać o tym zachowaniu podczas wybierania tych samych progów dla skalowania w górę i w dół.

Zalecamy wybranie odpowiedniego marginesu między progami skalowaniem w górę i w dół. Rozważmy na przykład następującą lepszą kombinację reguł.

  • Zwiększ liczbę wystąpień o jeden, gdy procesor CPU% >= 80
  • Zmniejsz liczbę wystąpień o jeden, gdy% <procesora = 60

W tym przypadku

  1. Załóżmy, że zaczynasz od dwóch wystąpień.
  2. Jeśli średnia% procesora CPU między wystąpieniami przekroczy 80, skalowanie automatyczne skaluje w poziomie dodając trzecie wystąpienie.
  3. Teraz załóżmy, że z czasem% CPU spadnie do 60.
  4. Reguła skalowania automatycznego szacuje stan końcowy, jeśli chodzi o skalowanie w dół. Na przykład 60 x 3 (bieżąca liczba wystąpień) = 180 / 2 (ostateczna liczba wystąpień w przypadku skalowania w pionie) = 90. Dlatego skalowanie automatyczne nie jest skalowane w dół, ponieważ konieczne byłoby natychmiastowe ponowne rozszerzenie. Zamiast tego pomija skalowanie w głąb.
  5. Przy następnym sprawdzaniu automatycznego skalowania użycie procesora nadal spada do 50%. System ponownie szacuje — 50 x 3 wystąpienia = 150 / 2 wystąpienia = 75, co jest poniżej progu skalowania w górę 80, więc zmniejsza się z powodzeniem do 2 wystąpień.

Zagadnienia dotyczące skalowania w przypadku skonfigurowania wielu reguł w profilu

Istnieją przypadki, w których może być konieczne ustawienie wielu reguł w profilu. Poniższy zestaw reguł autoskalowania jest używany przez usługi, gdy ustawiono wiele reguł.

W skalowanie w poziomiejest uruchamiane automatyczne skalowanie, jeśli zostanie spełniona jakakolwiek reguła. Przy zmniejszaniu skali automatyczne skalowanie wymaga spełnienia wszystkich reguł.

Aby zilustrować, załóżmy, że masz następujące cztery reguły skalowania automatycznego:

  • Jeśli procesor < 30%, zmniejsz dostępne zasoby o 1.
  • Jeśli pamięć < 50%, skalowanie w poziomie o 1
  • Jeśli procesor CPU > 75%, zwiększ skalowanie poziome o 1
  • Jeśli pamięć > 75%, zwiększ skalowanie o 1

Następnie następuje następująca sytuacja:

  • Jeśli procesor CPU wynosi 76%, a pamięć to 50%, skalujemy w poziomie.
  • Jeśli procesor cpu wynosi 50%, a pamięć wynosi 76% skalowamy w poziomie.

Z drugiej strony, jeśli procesor jest 25%, a pamięć to 51%, autoskalowanie nie zwęża się automatycznie. Automatyczne zmniejszanie skali występuje, jeśli CPU wynosi 29%, a pamięć 49%, ponieważ obie reguły zmniejszania skali będą spełnione.

Zawsze wybieraj bezpieczną domyślną liczbę wystąpień

Domyślna liczba wystąpień jest ważna, ponieważ skalowanie automatyczne skaluje usługę do tej liczby, gdy metryki nie są dostępne. W związku z tym wybierz domyślną liczbę wystąpień, która jest bezpieczna dla obciążeń.

Konfigurowanie powiadomień o autoskalowaniu

Autoskaluj wpisy w dzienniku aktywności, jeśli wystąpi którykolwiek z następujących warunków:

  • Autoskalowanie inicjuje operację skalowania
  • Usługa autoskalowania pomyślnie ukończy akcję skalowania
  • Usługa autoskalowania nie może wykonać akcji skalowania.
  • Metryki do podjęcia decyzji o skalowaniu nie są dostępne dla usługi autoskalowania.
  • Metryki są ponownie dostępne, co umożliwia podjęcie decyzji o skali.

Możesz również użyć alertu dziennika zdarzeń, aby monitorować kondycję mechanizmu automatycznego skalowania. Oprócz korzystania z alertów dziennika aktywności można również skonfigurować powiadomienia e-mail lub webhook, aby otrzymywać powiadomienia o udanych działaniach skalowania za pośrednictwem karty z powiadomieniami w ustawieniu automatycznego skalowania.