Identyfikowanie czynników skalowania automatycznego
Skalowanie automatyczne umożliwia określenie warunków, w których skala aplikacji internetowej powinna być zwiększana w poziomie i z powrotem zmniejszana w poziomie. Skuteczne autoskalowanie zapewnia dostępność wystarczających zasobów do obsługi dużych ilości żądań w godzinach szczytu, jednocześnie zarządzając kosztami, gdy zapotrzebowanie maleje.
Autoskalowanie można skonfigurować w celu wykrywania sytuacji, w których należy zmniejszyć lub zwiększyć skalę w poziomie zgodnie z kombinacją czynników, na podstawie użycia zasobów. Możesz także skonfigurować przeprowadzanie autoskalowania zgodnie z harmonogramem.
W tej lekcji dowiesz się, jak określić czynniki, których można użyć do automatycznego skalowania usługi.
Autoskalowanie i plan usługi App Service
Autoskalowanie to funkcja planu usługi App Service używanego przez aplikację internetową. Kiedy skala aplikacji internetowej jest zwiększana w poziomie, platforma Azure uruchamia nowe wystąpienia sprzętu zdefiniowanego przez plan usługi App Service dla aplikacji.
Aby zapobiec niekontrolowanemu autoskalowaniu, plan usługi App Service ma limit wystąpień. Plany w droższych warstwach cenowych mają wyższy limit. Skalowanie automatyczne nie może utworzyć większej liczby wystąpień niż ten limit.
Uwaga
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. Na przykład możesz zaplanować zwiększanie skali w poziomie o określonej porze dnia albo w konkretnym dniu lub dniu tygodnia. Należy również określić datę zakończenia, a system jest skalowany z powrotem w tej chwili.
Skalowanie do określonej liczby wystąpień pozwala tylko na zwiększenie skali w poziomie do zdefiniowanej liczby wystąpień. Jeśli musisz przyrostowo zwiększać skalę w poziomie, możesz połączyć autoskalowanie na podstawie metryki i autoskalowanie na podstawie harmonogramu w tym samym warunku autoskalowania. W ten sposób możesz na przykład ustalić, że skala systemu ma być zwiększana w poziomie, jeśli liczba żądań HTTP przekroczy pewien próg, ale tylko w określonych godzinach w ciągu dnia.
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. Dla aplikacji internetowej można monitorować następujące metryki:
- Procent użycia procesora CPU. Ta metryka jest wskazaniem wykorzystania procesora CPU we wszystkich wystąpieniach. Wysoka wartość pokazuje, że wystąpienia stają się zależne od obciążonego procesora CPU, co może spowodować opóźnienia przetwarzania żądań klientów.
- Procent pamięci. Ta metryka przechwytuje zajętość pamięci aplikacji we wszystkich wystąpieniach. Wysoka wartość wskazuje, że może być za mało wolnej pamięci i może spowodować, że co najmniej jedno wystąpienie ulegnie awarii.
- Długość kolejki dysku. Ta metryka jest miarą liczby oczekujących żądań we/wy we wszystkich wystąpieniach. Wysoka wartość oznacza potencjalną rywalizację o dysk.
- Długość kolejki HTTP. Ta metryka pokazuje liczbę żądań klientów oczekujących na przetwarzanie przez aplikację internetową. Jeśli ta liczba jest duża, żądania klientów mogą kończyć się niepowodzeniem z powodu błędów HTTP 408 (limit czasu).
- Dane wejściowe. Ta metryka pokazuje liczbę 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. Jeśli na przykład aplikacja internetowa przetwarza żądania odebrane z kolejki usługi Service Bus, możesz chcieć uruchomić więcej wystąpień aplikacji internetowej, jeśli liczba elementów przechowywanych w kolejce usługi Azure Service Bus przekracza krytyczną długość.
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 etapie reguła autoskalowania agreguje wartości pobrane dla metryki dla wszystkich wystąpień w okresie nazywanym ziarnem czasu. Każda metryka ma swoje własne wewnętrzne ziarno czasu, ale w większości przypadków ten okres to 1 minuta. 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, w którym przeprowadza dalszą agregację wartości obliczonej przez agregację czasu w dłuższym, określonym przez użytkownika okresie, znanym jako czas 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. Jeśli na przykład agregacja czasu to Średnia, a zebrana statystyka to Procent użycia procesora CPU w jednominutowym ziarnie czasu, w każdej minucie obliczane jest średnie użycie procentowe procesora CPU 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. Akcją autoskalowania może być zwiększanie skali w poziomie lub zmniejszanie skali w poziomie. Akcja zwiększania skali w poziomie zwiększa liczbę wystąpień, a akcja zmniejszania skali w poziomie zmniejsza liczbę wystąpień. Akcja autoskalowania korzysta z operatora (takiego jak mniejsze niż, większe niż, równe itd.) w celu określenia sposobu reagowania na wartość progową. Akcje zwiększania skali w poziomie zwykle porównują wartość metryki z progiem przy użyciu operatora większe niż. Akcje zmniejszania skali w poziomie najczęściej porównują wartość metryki z progiem za pomocą operatora mniejsze 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 autoskalowania ma okres ochładzania, określany w minutach. W tym przedziale czasu reguła skalowania nie będzie wyzwalana ponownie. Pozwala to na ustabilizowanie systemu 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 zwiększać skalę systemu w poziomie, kiedy metryka przekroczy górny próg. Natomiast druga reguła powinna definiować sposób ponownego zmniejszania skali systemu w poziomie, kiedy ta sama metryka spadnie poniżej dolnego progu.
Łączenie reguł autoskalowania
Pojedynczy warunek autoskalowania może zawierać kilka reguł autoskalowania (na przykład regułę zwiększania skali w poziomie i odpowiednią regułę zmniejszania skali w poziomie). Jednak reguły autoskalowania w warunku autoskalowania nie muszą być bezpośrednio powiązane. Na przykład możesz zdefiniować następujące cztery reguły w tym samym warunku autoskalowania:
- Jeśli długość kolejki HTTP przekracza 10, zwiększ skalę w poziomie o 1
- Jeśli wykorzystanie procesora CPU przekracza 70%, zwiększ skalę w poziomie o 1
- Jeśli długość kolejki HTTP wynosi zero, zmniejsz skalę w poziomie o 1
- Jeśli wykorzystanie procesora CPU spada poniżej 50%, zmniejsz skalę w poziomie o 1
Podczas określania, czy przeprowadzić skalowanie w poziomie, akcja autoskalowania jest wykonywana, jeśli zostaną spełnione jakiekolwiek reguły skalowania w poziomie (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 przeprowadzić skalowanie w poziomie, jeśli spełnisz tylko jedną regułę skalowania w poziomie, musisz zdefiniować reguły w oddzielnych warunkach skalowania automatycznego.