Identifiera faktorer för implementering av autoskalning

Slutförd

Med autoskalning kan du ange de villkor under vilka en webbapp ska skalas ut och sedan skalas in igen. Effektiv autoskalning säkerställer att det finns tillräckligt med resurser för att hantera stora mängder begäranden vid hög belastning, samtidigt som omkostnaderna hålls nere när efterfrågan minskar.

Du kan konfigurera automatisk skalning för att identifiera när du ska skala ut och skala in enligt en kombination av faktorer som baseras på resursanvändning. Du kan också konfigurera automatisk skalning enligt ett schema.

I den här lektionen får du lära dig hur du anger de faktorer som kan användas för automatisk skalning av en webbtjänst.

Autoskalning och App Service-planer

När du skapar en webbapp skapar du även en App Service-plan. App Service-planen definierar det operativsystem (Windows eller Linux) som används som värd för webbappen. Prisnivån för planen anger vilken maskinvara som är tillgänglig (minneskapacitet, processorbearbetningskapacitet, disklagring) och andra tjänster, till exempel regelbundna säkerhetskopieringar för varje instans av webbappen.

Autoskalning är en funktion i den App Service-plan som används av webbappen. När webbappen skalar ut startar Azure fler instanser av maskinvaran som definieras av App Service-planen till appen.

För att förhindra kostsamma skenande autoskalning har en App Service-plan en instansgräns. Planer på dyrare prisnivåer har högre instansgränser. Autoskalning får inte överskrida instansgränsen för App Service-planen. Standard-serien med tjänstplaner stöder till exempel upp till 10 instanser till en uppskattad kostnad av 0,40 USD per timme för varje instans. Premium-serien med tjänstplaner möjliggör upp till 20 instanser till en uppskattad kostnad på 0,80 USD per timme för varje instans. Planerna för isolerade tjänster tillåter upp till 100 instanser till en uppskattad kostnad av 1,60 USD per timme för varje instans.

Kommentar

Det är inte alla prisnivåer för App Service-plan som stöder autoskalning.

Villkor för autoskalning

Du anger hur autoskalning ska ske genom att skapa regler för autoskalning. Azure innehåller två alternativ för autoskalning:

  • Skala baserat på ett mått, till exempel längden på diskkön eller antalet HTTP-begäranden som väntar på bearbetning.
  • Skala till ett specifikt instansantal enligt ett schema. Du kan till exempel ordna att skala ut vid en viss tidpunkt på dagen eller på ett visst datum eller en viss dag i veckan. Du kan också ange en tid eller ett datum då systemet ska skalas in igen.

Om du skalar till ett specifikt instansantal kan du endast skala ut till ett definierat antal instanser. Om du vill skala ut stegvis kan du kombinera måttbaserad och schemabaserad autoskalning i ett enda autoskalningsvillkor. Du kan till exempel ordna så att systemet skalar ut om antalet HTTP-begäranden överskrider ett angivet tröskelvärde, men bara mellan vissa timmar på dagen.

Du kan skapa flera autoskalningsvillkor för att hantera olika scheman och mått. Azure skalar din tjänst automatiskt när något av dina etablerade villkor gäller. Varje App Service-plan har också ett standardvillkor för autoskalning som används om inga andra villkor gäller. Standardvillkoret för autoskalning är alltid aktivt och har inget schema.

Mått för autoskalningsregler

För autoskalning efter mått krävs att du definierar en eller fler autoskalningsregler. En autoskalningsregel anger ett mått som ska övervakas samt hur autoskalning ska reagera när måttet överskridet ett definierat tröskelvärde. I följande lista beskrivs de mått som du kan övervaka för en webbapp:

  • CPU-procent anger processoranvändningen för alla instanser. En hög CPU-procentandel visar att instanser blir CPU-bundna, vilket kan orsaka fördröjningar i bearbetningen av klientbegäranden.
  • Minnesprocent fångar upp programmets minnesanvändning i alla instanser. En hög minnesprocent anger att det lediga minnet kan ta slut, vilket kan leda till att en eller flera instanser misslyckas.
  • Diskkölängd mäter antalet utestående I/O-begäranden för alla instanser. En hög diskkölängd innebär att diskkonkurration kan uppstå.
  • Http Queue Length visar hur många klientbegäranden som väntar på bearbetning av webbappen. Om http-kölängden är stor kan klientbegäranden misslyckas med HTTP 408-fel (timeout).
  • Data i är antalet byte som tas emot för alla instanser.
  • Data out är antalet byte som skickas över alla instanser.

Du kan även skala baserat på mått för andra Azure-tjänster. Om en webbapp till exempel bearbetar begäranden som tagits emot från en Service Bus-kö kanske du vill starta fler instanser av appen om antalet objekt som lagras i en Azure Service Bus-kö överskrider en kritisk längd.

Så analyserar en autoskalningsregel mått

Autoskalning fungerar genom att analysera trender i måttvärden över tid och i alla instanser. Analysen är en process i flera steg.

I det första steget aggregerar en autoskalningsregel de värden som hämtas för ett mått för alla instanser över en tidsperiod som kallas tidsintervallet. Varje mått har sitt eget inbyggda tidsintervall, men i de flesta fall är den här perioden en minut. Det aggregerade värdet kallas för tidsmängden. Alternativen för tidsaggregering är Average, Minimum, Maximum, Total, Last och Count.

En minut är ett kort intervall där du kan avgöra om någon ändring i måttet är tillräckligt långvarig för att göra autoskalning värt besväret. Därför utför en autoskalningsregel en andra aggregering av värdet som beräknas av tidssammansättningen under en längre, användardefinerad period, så kallad Varaktighet. Den minsta varaktigheten är 5 minuter. Om varaktigheten är inställd på 10 minuter, till exempel, aggregerar autoskalningsregeln de 10 värden som beräknas för tidsintervallet.

Aggregeringsberäkningen för Varaktighet kan skilja sig från aggregeringsberäkningen för tidsintervallet. Om t.ex. tidsaggregering är Genomsnitt och måttet som samlas in är CPU-procent över ett tidsintervall på en minut beräknas den genomsnittliga processorprocentanvändningen för alla instanser för den minuten varje minut.

Anta till exempel att tidssammansättningen är inställd på Max och att regelns varaktighet är inställd på 10 minuter. I den här exempelkonfigurationen används maximalt 10 genomsnittliga värden för processorprocentanvändningen för att avgöra om regelns tröskelvärde har överskridits.

Åtgärder för autoskalning

När en autoskalningsregel upptäcker att ett mått överskrider ett tröskelvärde kan autoskalningsregeln utföra en autoskalningsåtgärd. En autoskalningsåtgärd kan vara utskalning eller inskalning. En utskalningsåtgärd ökar antalet instanser, och en inskalningsåtgärd minskar antalet instanser. En autoskalningsåtgärd använder en operator (till exempel mindre än, större än, lika med och så vidare) för att avgöra hur den ska reagera på tröskelvärdet. Utskalningsåtgärder använder vanligtvis operatorn större än för att jämföra måttvärdet med tröskelvärdet. Inskalningsåtgärder tenderar att jämföra måttvärdet med tröskelvärdet via operatorn mindre än. Autoskalningsåtgärder kan även ange instansantalet till en viss nivå i stället för att öka eller minska antalet tillgängliga instanser.

En autoskalningsåtgärd har en nedkylningsperiod som anges i minuter. Under nedkylningsperioden utlöses inte skalningsregeln igen. Med nedkylningsperioden kan systemet stabiliseras mellan autoskalningshändelser. Kom ihåg att det tar tid att starta eller stänga av instanser, så alla mått som samlas in kanske inte visar några större ändringar på flera minuter. Den kortaste nedkylningsperioden är fem minuter.

Parkoppla autoskalningsregler

Du bör planera att skala in när en arbetsbelastning minskar. Överväg att definiera autoskalningsregler i par i samma autoskalningsvillkor. En autoskalningsregel bör ange hur systemet ska skalas ut när ett mått överskrider ett övre tröskelvärde. Sedan bör en annan regel definiera hur systemet ska skalas in igen när samma mått sjunker under ett lägre tröskelvärde.

Kombinera autoskalningsregler

Ett enda autoskalningsvillkor kan innehålla flera regler för autoskalning (till exempel en utskalningsregel och motsvarande inskalningsregel). Däremot måste autoskalningsregler i ett autoskalningsvillkor inte vara direkt relaterade till varandra. Du kan till exempel definiera följande fyra autoskalningsregler i ett enda autoskalningsvillkor:

  • Om HTTP-kölängden överskrider 10 skalar du ut med en
  • Om processoranvändningen överskrider 70 procent skalar du ut med en
  • Om HTTP-kölängden är lika med noll skalar du in med en
  • Om processoranvändningen sjunker under 50 procent skalar du in med en

När du avgör om du ska skala ut utförs autoskalningsåtgärden om någon av utskalningsreglerna uppfylls (HTTP-kölängden överskrider 10 eller cpu-användningen överskrider 70 procent). När du skalar in körs autoskalningsåtgärden endast om alla inskalningsregler uppfylls (HTTP-kölängden sjunker till noll och CPU-användningen understiger 50 procent). Om du behöver skala in om endast en inskalningsregel uppfylls måste du definiera reglerna i separata autoskalningsvillkor.