Identyfikowanie czynników skalowania automatycznego

Ukończone

Autoskalowanie umożliwia określenie warunków, w których aplikacja internetowa powinna zostać przeskalowana na zewnątrz, i przeskalowana z powrotem. Efektywne skalowanie automatyczne zapewnia, że wystarczające zasoby są dostępne do obsługi dużych ilości żądań w godzinach szczytu, jednocześnie zarządzając kosztami, gdy zapotrzebowanie spadnie.

Można skonfigurować autoskalowanie, aby wykrywać, kiedy zmniejszać lub zwiększać zasoby zgodnie z kombinacją czynników na podstawie ich użycia. Skalowanie automatyczne można również skonfigurować zgodnie z harmonogramem.

W tej lekcji dowiesz się, jak określić czynniki, których można użyć do automatycznego skalowania usługi.

Skalowanie automatyczne i plan usługi aplikacji

Autoskalowanie to funkcja planu usługi App Service używanego przez aplikację internetową. Gdy aplikacja internetowa jest skalowana w poziomie, platforma Azure uruchamia nowe wystąpienia sprzętu zdefiniowanego przez Plan usługi App Service dla aplikacji.

Aby zapobiec automatycznemu skalowaniu, plan usługi App Service ma limit wystąpień. Plany w droższych poziomach cenowych mają wyższy limit. Skalowanie automatyczne nie może utworzyć większej liczby wystąpień niż ten limit.

Uwaga / Notatka

Nie wszystkie warstwy cenowe planu usługi App Service obsługują autoskalowanie.

Warunki autoskalowania

Możesz utworzyć warunki skalowania, aby określić sposób autoskalowania. Platforma Azure oferuje dwie opcje autoskalowania:

  • Skaluj na podstawie metryki, takiej jak długość kolejki dysku lub liczba żądań HTTP oczekujących na przetwarzanie.
  • Skalowanie do określonej liczby wystąpień zgodnie z harmonogramem. Można na przykład zwiększyć skalowanie o określonej porze dnia, w określonym dniu lub w dniu tygodnia. Należy również określić datę zakończenia, a system zmniejsza skalę w tym czasie.

Skalowanie do określonej liczby wystąpień pozwala tylko na zwiększenie skali w poziomie do zdefiniowanej liczby wystąpień. Jeśli chcesz przyrostowo skalować w poziomie, możesz połączyć automatyczne skalowanie oparte na metrykach i harmonogramie w tym samym warunku autoskalowania. Dlatego można skonfigurować system do skalowania poziomego, jeśli liczba żądań HTTP przekroczy pewien próg, ale tylko w określonych godzinach.

Możesz utworzyć wiele warunków autoskalowania w celu obsługi różnych harmonogramów i metryk. Platforma Azure automatycznie skaluje usługę, gdy obowiązują dowolne z tych warunków. Plan usługi App Service ma również warunek domyślny, który jest używany, jeśli żaden z innych warunków nie ma zastosowania. Ten warunek jest zawsze aktywny i nie ma harmonogramu.

Metryki dla reguł autoskalowania

Autoskalowanie na podstawie metryki wymaga zdefiniowania co najmniej jednej reguły autoskalowania. Reguła autoskalowania określa metrykę do monitorowania oraz sposób, w jaki autoskalowanie powinno reagować, gdy ta metryka przekroczy zdefiniowany próg. Metryki, które można monitorować dla aplikacji internetowej, to:

  • Procent użycia procesora CPU. Ta metryka wskazuje wykorzystanie procesora CPU we wszystkich wystąpieniach. Wysoka wartość pokazuje, że instancje stają się ograniczone przez CPU, co może spowodować opóźnienia w przetwarzaniu żądań klientów.
  • Procent pamięci. Ta metryka przechwytuje zajętość pamięci aplikacji we wszystkich wystąpieniach. Wysoka wartość wskazuje, że może brakować wolnej pamięci, co może skutkować niepowodzeniem jednego lub więcej wystąpień.
  • Długość kolejki dysku. Ta metryka jest miarą liczby zaległych żądań I/O we wszystkich wystąpieniach. Wysoka wartość oznacza, że rywalizacja o dysk może wystąpić.
  • Długość kolejki HTTP. Ta metryka pokazuje, ile żądań klientów oczekuje na przetwarzanie przez aplikację internetową. Jeśli ta liczba jest duża, żądania klientów mogą zakończyć się niepowodzeniem z błędami HTTP 408 (limit czasu).
  • Dane wejściowe Ta metryka to liczba bajtów odebranych we wszystkich wystąpieniach.
  • Dane wychodzące. Ta metryka jest liczbą bajtów wysyłanych przez wszystkie wystąpienia.

Możesz również skalować na podstawie metryk innych usług platformy Azure.

W jaki sposób reguła autoskalowania analizuje metryki

Skalowanie automatyczne działa przez analizowanie trendów w wartościach metryk w czasie we wszystkich wystąpieniach. Analiza jest procesem wieloetapowym.

W pierwszym kroku reguła autoskalowania agreguje wartości pobrane dla metryki dla wszystkich wystąpień w danym okresie znanym jako ziarno czasu. Każda metryka ma własne wewnętrzne ziarno czasu, ale w większości przypadków ten okres wynosi 1 minutę. Zagregowana wartość jest nazywana agregacją czasu. Dostępne opcje to Average, Minimum, Maximum, Sum, Last i Count.

Interwał jednej minuty to krótki interwał, w którym należy określić, czy jakakolwiek zmiana metryki jest wystarczająco długotrwała, aby autoskalowanie było opłacalne. Dlatego reguła autoskalowania wykonuje drugi krok, który wykonuje dalszą agregację wartości obliczonej przez agregację czasu w dłuższym okresie określonym przez użytkownika, nazywanym czasem trwania. Minimalny czas trwania wynosi 5 minut. Jeśli na przykład czas trwania jest ustawiony na 10 minut, reguła autoskalowania agreguje 10 wartości obliczonych dla ziarna czasu.

Obliczenie agregacji dla czasu trwania może różnić się od ziarna czasu. Na przykład, jeśli agregacja czasu to Średnia, a zebrana statystyka to procentowe użycie procesora w jednominutowym interwale czasowym, to w każdej minucie obliczane jest średnie procentowe użycie procesora we wszystkich wystąpieniach dla tej minuty. Jeśli statystyka ziarna czasu jest ustawiona na Wartość Maksymalna, a czas trwania reguły jest ustawiony na 10 minut, maksymalna wartość 10 średnich wartości procentowego użycia procesora CPU polega na ustaleniu, czy próg reguły został przekroczony.

Akcje autoskalowania

Gdy reguła autoskalowania wykryje, że metryka przekroczyła próg, może wykonać akcję autoskalowania. Akcja automatycznego skalowania może być skalowaniem w górę lub skalowaniem w dół. Akcja zwiększania skali w poziomie zwiększa liczbę wystąpień, a akcja zmniejszania skali w poziomie zmniejsza liczbę wystąpień. Akcja autoskalowania używa operatora (takiego jak mniejsze niż, większe niż, równe itd.), aby określić sposób reagowania na próg. Akcje skalowania w poziomie zwykle używają operatora większego niż do porównania wartości metryki z progiem. Akcje skalowania wewnętrznego zwykle porównują wartość metryki do progu za pomocą operatora mniejszego niż. Akcja autoskalowania może również ustawiać liczbę wystąpień na określony poziom zamiast przyrostowo zwiększać lub zmniejszać dostępną liczbę.

Akcja automatycznego skalowania ma okres ochładzania określony w minutach. W tym interwale reguła skalowania nie może zostać ponownie wyzwolona. Pozwala to systemowi na stabilizację między zdarzeniami autoskalowania. Należy pamiętać, że uruchomienie lub zamknięcie wystąpienia chwilę trwa, a więc zbierane metryki mogą nie pokazywać żadnych znaczących zmian przez kilka minut. Minimalny okres ochładzania wynosi pięć minut.

Parowanie reguł autoskalowania

Należy zaplanować zmniejszanie skali w poziomie, gdy obciążenie się zmniejszy. Rozważ zdefiniowanie reguł autoskalowania w parach w tym samym warunku autoskalowania. Jedna reguła autoskalowania powinna wskazywać, jak skalować system w poziomie, gdy metryka przekracza górny próg. Następnie inna reguła powinna zdefiniować sposób ponownego skalowania systemu, gdy ta sama metryka spadnie poniżej niższego progu.

Łączenie reguł autoskalowania

Pojedynczy warunek skalowania automatycznego może zawierać kilka reguł skalowania automatycznego (na przykład regułę skalowania do zewnątrz i odpowiednią regułę skalowania do wewnątrz). Jednak reguły autoskalowania w warunku autoskalowania nie muszą być bezpośrednio powiązane. Możesz zdefiniować następujące cztery reguły w tym samym warunku skalowania automatycznego:

  • Jeśli długość kolejki HTTP przekracza 10, rozszerz zasoby o 1 instancję.
  • Jeśli użycie procesora przekroczy 70%, zwiększ liczbę instancji o 1
  • Jeśli długość kolejki HTTP wynosi zero, zmniejsz skalę o 1
  • Jeśli użycie CPU spadnie poniżej 50%, zmniejsz skalę o 1

Podczas określania, czy chcesz skalować w poziomie, akcja autoskalowania jest wykonywana, jeśli którekolwiek z reguł skalowania w poziomie są spełnione (długość kolejki HTTP przekracza 10 lub użycie procesora CPU przekracza 70%). Podczas skalowania w poziomie akcja autoskalowania jest uruchamiana tylko wtedy, gdy zostaną spełnione wszystkie reguły skalowania w poziomie (długość kolejki HTTP spadnie do zera , a użycie procesora CPU spadnie poniżej 50%). Jeśli musisz zmniejszyć skalę w przypadku spełnienia tylko jednej z reguł dla zmniejszania skali, musisz zdefiniować te reguły w oddzielnych warunkach automatycznego skalowania.