Identifiera autoskalningsfaktorer

Slutförd

Med autoskalning kan du ange de villkor då en webbapp ska skalas ut och tillbaka igen. Effektiv autoskalning säkerställer att det finns tillräckligt med resurser för att hantera stora volymer med begäranden under perioder med hög belastning, samtidigt som kostnaderna begränsas när efterfrågan är mindre.

Du kan konfigurera autoskalning till att identifiera när det ska skala in och upp enligt en kombination av faktorer baserat på resursanvändning. Du kan även konfigurera autoskalning så att det utförs 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 tjänst.

Autoskalning och App Service-planen

Autoskalning är en funktion i den App Service-plan som används av webbappen. När webbappen skalas upp startar Azure nya instanser av den maskinvara som definieras av App Service-planen till appen.

För att förhindra skenande autoskalning innehåller App Service-planer en instansgräns. Planer på dyrare prisnivåer har en högre gräns. Autoskalning kan inte skapa fler instanser än den här gränsen.

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 exempelvis schemalägga att det ska skalas ut vid en viss tid, på ett visst datum eller under en viss veckodag. Du anger också ett slutdatum och systemet skalar in igen just nu.

Om du skalar till ett specifikt instansantal kan du endast skala ut till ett definierat antal instanser. Om du behöver skala ut inkrementellt kan du kombinera mått- och schemabaserad autoskalning i samma autoskalningsvillkor. Du skulle alltså kunna ordna så att systemet skalar ut om antalet HTTP-begäranden överskridet ett tröskelvärde, men endast mellan vissa klockslag.

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 dessa villkor gäller. En App Service-plan har också ett standardvillkor som används om inget av de andra villkoren är tillämpliga. Det här villkoret är alltid aktivt och går inte efter något 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. De mått som du kan övervaka för en webbapp är:

  • CPU-procent. Det här måttet är en indikation på CPU-användningen i alla instanser. Ett högt värde visar att instanserna håller på att bli CPU-bundna, vilket kan orsaka fördröjningar i bearbetningen av klientbegäranden.
  • Minnesprocent. Det här måttet registrerar programmets minnesanvändning i alla instanser. Ett högt värde anger att det lediga minnet kanske håller på att ta slut, vilket kan leda till att en eller flera instanser slutar fungera.
  • Diskkölängd. Det här måttet anger antalet utestående I/O-begäranden för alla instanser. Ett högt värde innebär det kan uppstå diskkonkurrens.
  • HTTP-kölängd. Det här måttet visar hur många klientbegäranden som väntar på bearbetning från webbappen. Om den här siffran är hög kan klientbegäranden misslyckas med HTTP 408-fel (Timeout).
  • Indata. Det här måttet är det antal byte som tas emot i alla instanser.
  • Data ut. Det här måttet är antalet byte som skickas av alla instanser.

Du kan även skala baserat på mått för andra Azure-tjänster. Om webbappen till exempel bearbetar begäranden som tagits emot från en Service Bus-kö kanske du vill starta fler instanser av en webbapp 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 i alla instanser. Analys ä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 inbäddade tidsintervall, men i de flesta fall är den här perioden 1 minut. Det aggregerade värdet kallas för tidsmängden. De tillgängliga alternativen är Average, Minimum, Maximum, Sum, Last och Count.

Ett intervall på 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 ett andra steg som genomför ytterligare en aggregering av det värde som beräknas av tidsmängden över en längre, användardefinierad period som kallas varaktigheten. Den minsta varaktigheten är 5 minuter. Om varaktigheten till exempel är inställd på 10 minuter aggregerar autoskalningsregeln de 10 värden som beräknas för tidsintervallet.

Aggregeringsberäkningen för Varaktighet kan skilja sig från tidsintervallet. Om t.ex. tidsaggregering är Genomsnitt och statistiken 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. Om tidsintervallstatistiken är inställd på Maximum och regelns varaktighet är inställd på 10 minuter, är det maximala av de 10 genomsnittliga värdena för processorprocentanvändningen 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 har överskridit ett tröskelvärde kan den 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.

Autoskalningsåtgärder har en nedkylningstid som anges i minuter. Under det här intervallet utlöses inte skalningsregeln igen. Syftet med det här är att tillåta systemet att stabiliseras mellan autoskalningshändelser. Kom ihåg att det tar tid att starta eller stänga av instanser. Därför kan det hända att mått som samlas inte uppvisar några betydande ändringar på flera minuter. Den minsta nedkylningstiden ä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 indikera hur systemet ska skalas upp när ett mått överskrider ett övre tröskelvärde. Den andra regeln bör definiera hur systemet ska skalas tillbaka igen när samma mått understiger ett nedre tröskelvärde.

Kombinera autoskalningsregler

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

  • Om HTTP-kölängden överstiger 10, skala ut med 1
  • Om CPU-användningen överskrider 70 %, skala ut med 1
  • Om HTTP-kölängden är noll, skala in med 1
  • Om CPU-användningen underskrider 50 %, skala in med 1

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 överstiger 70 %). 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 %). Om du behöver skala in om endast en av inskalningsreglerna uppfylls måste du definiera reglerna i separata autoskalningsvillkor.