Identifikace faktorů automatického škálování

Dokončeno

Automatické škálování umožňuje určit podmínky, za kterých by měla být horizontálně navýšena a potom zase snížena kapacita webové aplikace. Efektivní automatické škálování zajistí dostatek prostředků dostupných pro zpracování velkých objemů požadavků ve špičkách a zároveň umožňuje mít náklady pod kontrolou, když poptávka klesne.

Automatické škálování můžete nakonfigurovat tak, aby rozpoznalo, kdy se má kapacita horizontálně zvýšit nebo snížit v závislosti na kombinaci faktorů založených na využití prostředků. Automatické škálování můžete dále nakonfigurovat tak, aby k němu docházelo podle plánu.

V této lekci se dozvíte, jak určit faktory, které je možné použít k automatickému škálování služby.

Automatické škálování a plán služby App Service

Automatické škálování je funkcí plánu služby App Service používanou webovou aplikací. Když webová aplikace horizontálně navýší kapacitu, Azure spustí nové instance hardwaru definované plánem služby App Service pro aplikaci.

Aby se zabránilo neřízenému automatickému škálování, má plán služby App Service limit instancí. Plány ve vyšších cenových úrovních mají vyšší limity. Automatické škálování nemůže vytvořit více instancí, než je tento limit.

Poznámka:

Automatické škálování není podporováno všemi cenovými úrovněmi plánu služby App Service.

Podmínky automatického škálování

Jak se má automatické škálování provádět, určíte vytvořením podmínek automatického škálování. Azure poskytuje pro automatické škálování dvě možnosti:

  • Škálujte na základě metriky, například délky fronty disků nebo počtu požadavků HTTP čekajících na zpracování.
  • Škálování na konkrétní počet instancí podle plánu. Horizontální navýšení kapacity můžete například naplánovat na konkrétní část dne, nebo na konkrétní datum nebo den v týdnu. Zadáte také koncové datum a systém se v tuto chvíli znovu škáluje.

Škálování na konkrétní počet instancí umožňuje horizontálně navýšit kapacitu pouze na definovaný počet instancí. Pokud potřebujete kapacitu navyšovat postupně, můžete ve stejné podmínce automatického škálování zkombinovat automatické škálování podle metriky a podle plánu. Můžete tedy naplánovat, aby systém horizontálně navýšil kapacitu, pokud počet požadavků HTTP překročí určitou prahovou hodnotu, ale pouze mezi konkrétními hodinami dne.

Můžete vytvořit několik podmínek automatického škálování pro zpracování různých plánů a metrik. Azure automaticky škáluje vaši službu, když se použije jakákoli z těchto podmínek. Plán služby App Service má také výchozí podmínku, která se použije, pokud se žádná z ostatních podmínek nepoužije. Tato podmínka je vždy aktivní a nemá plán.

Metriky pro pravidla automatického škálování

Automatické škálování podle metriky vyžaduje, abyste nadefinovali jedno nebo více pravidel automatického škálování. Pravidlo automatického škálování určuje metriku pro monitorování a to, jak by automatické škálování mělo reagovat, když tato metrika překročí definovanou prahovou hodnotu. Toto jsou metriky, které můžete u webové aplikace monitorovat:

  • Procento CPU. Tato metrika je údaj o využití procesoru ve všech instancích. Vysoká hodnota značí, že instance začínají být vázané na procesor, což by mohlo způsobit zpoždění při zpracování požadavků klientů.
  • Procento paměti. Tato metrika zaznamenává obsazenost paměti aplikace napříč všemi instancemi. Vysoká hodnota označuje, že může být nedostatek volné paměti a může dojít k selhání jedné nebo více instancí.
  • Délka fronty disku. Tato metrika udává počet nezpracovaných vstupně-výstupních požadavků napříč všemi instancemi. Vysoká hodnota znamená, že může docházet ke sporům disku.
  • Délka fronty HTTP. Tato metrika ukazuje, kolik požadavků klientů čeká na zpracování ve webové aplikaci. Pokud je toto číslo velké, může dojít k selhání požadavků klientů s chybami HTTP 408 (Vypršel časový limit).
  • Vstupní data. Tato metrika je počet bajtů přijatých napříč všemi instancemi.
  • Data jsou mimo. Tato metrika je počet bajtů odeslaných všemi instancemi.

Můžete také škálovat podle metrik pro ostatní služby Azure. Pokud například webová aplikace zpracovává požadavky přijaté z fronty služby Service Bus, můžete chtít aktivovat více instancí webové aplikace, pokud počet položek uložených ve frontě služby Azure Service Bus překročí kritickou délku.

Jak pravidlo automatického škálování analyzuje metriky

Automatické škálování funguje analýzou trendů v hodnotách metrik v průběhu času napříč všemi instancemi. Analýza je proces s více kroky.

V prvním kroku pravidlo automatického škálování agreguje hodnoty metriky, které získalo pro všechny instance v časovém období označovaném jako agregační interval. Každá metrika má svůj vlastní vnitřní agregační interval, ve většině případů je ale toto období 1 minuta. Agregovaná hodnota se označuje jako časová agregace. Dostupné jsou možnosti Průměr, Minimum, Maximum, Sum, Last a Count.

Interval jedné minuty je krátký interval, ve kterém zjistíte, jestli je jakákoli změna metriky dostatečně dlouhá, aby automatické škálování stálo za to. Proto je tu druhý krok pravidla automatického škálování, který provádí další agregaci hodnoty vypočítané časovou agregací po delší uživatelem zadanou dobu označovanou jako Doba trvání. Minimální Doba trvání je pět minut. Pokud je doba trvání nastavená například na 10 minut, pravidlo automatického škálování agreguje 10 hodnot vypočítaných pro agregační interval.

Výpočet agregace pro dobu trvání se může lišit od agregačního intervalu. Pokud je například časová agregace Průměr a shromážděná statistika je procento procesoru v intervalu o jednu minutu, každou minutu se vypočítá průměrné procento využití procesoru ve všech instancích pro danou minutu. Pokud je statistika agregace časového intervalu nastavená na Maximum a doba trvání pravidla je nastavená na 10 minut, maximální hodnota 10 průměrných hodnot využití procesoru určuje, jestli byla překročena prahová hodnota pravidla.

Akce automatického škálování

Když pravidlo automatického škálování zjistí, že metrika překročila prahovou hodnotu, může provést akci automatického škálování. Akce automatického škálování může být horizontální navýšení kapacity nebo horizontální snížení kapacity. Akce horizontálního navýšení kapacity počet instancí zvýší a akce horizontálního snížení kapacity jejich počet sníží. Akce automatického škálování používá operátor (například menší než, větší než, rovno a tak dále), aby zjistila, jak reagovat na prahové hodnoty. Akce horizontálního navýšení kapacity obvykle používají operátor větší než k porovnání hodnoty metriky s prahovou hodnotou. Akce horizontálního snížení kapacity mají tendenci porovnávat hodnotu metriky s prahovou hodnotou pomocí operátoru menší než. Akce automatického škálování může také nastavit počet instancí na konkrétní úroveň, a nezvyšuje ani nesnižuje počet dostupných instancí.

Akce automatického škálování má dobu přestávky, která je určena v minutách. Během tohoto intervalu se pravidlo škálování nebude znovu aktivovat. Systém se díky tomu může mezi událostmi automatického škálování stabilizovat. Mějte na paměti, že spuštění nebo ukončení instancí může určitou dobu trvat. Získané metriky proto nemusí po několik minut ukazovat žádné zásadní změny. Minimální doba přestávky je pět minut.

Párování pravidel automatického škálování

Horizontální snížení kapacity byste měli naplánovat při snížení zatížení. Zvažte definici pravidel automatického škálování v párech ve stejné podmínce automatického škálování. Jedno pravidlo automatického škálování by mělo indikovat, jakým způsobem horizontálně navýšit kapacitu systému, když metrika překročí horní prahovou hodnotu. Druhé pravidlo by mělo definovat, jak škálovat systém zpět, když stejná metrika klesne pod dolní prahovou hodnotu.

Kombinování pravidel automatického škálování

Jedna podmínka automatického škálování může obsahovat několik pravidel automatického škálování (například pravidlo pro horizontální navýšení kapacity a odpovídající pravidlo pro horizontální snížení kapacity). Pravidla automatického škálování v podmínce automatického škálování ale nemusí přímo souviset. Ve stejné podmínce automatického škálování můžete nadefinovat následující čtyři pravidla:

  • Pokud je délka fronty HTTP větší než 10, provést horizontální navýšení kapacity o 1
  • Pokud využití procesoru přesáhne 70 %, provést horizontální navýšení kapacity o 1
  • Pokud je délka fronty HTTP nula, provést horizontální snížení kapacity o 1
  • Pokud využití procesoru klesne pod 50 %, provést horizontální snížení kapacity o 1

Při určování, jestli se má horizontálně navýšit kapacitu, provede se akce automatického škálování, pokud jsou splněná některá z pravidel horizontálního navýšení kapacity (délka fronty HTTP překračuje 10 nebo využití procesoru překračuje 70 %). Při horizontálním snížení kapacity se akce automatického škálování spustí jenom v případě, že jsou splněna všechna pravidla škálování (délka fronty HTTP klesne na nulu a využití procesoru klesne pod 50 %). Pokud potřebujete provést škálování v případě splnění pouze jednoho z pravidel horizontálního snížení kapacity, musíte pravidla definovat v samostatných podmínkách automatického škálování.