Identificer autoskaleringsfaktorer
Automatisk skalering giver dig mulighed for at angive de betingelser, hvorunder en webapp skal skaleres ud og ind igen. Effektiv automatisk skalering sikrer, at der er tilstrækkelige ressourcer til at håndtere store mængder anmodninger i spidsbelastningstider, samtidig med at omkostningerne administreres, når efterspørgslen falder.
Du kan konfigurere automatisk skalering for at registrere, hvornår der skal skaleres ind og ud i henhold til en kombination af faktorer baseret på ressourceforbrug. Du kan også konfigurere automatisk skalering, så den sker i henhold til en tidsplan.
I dette undermodul lærer du, hvordan du angiver de faktorer, der kan bruges til automatisk skalering af en tjeneste.
Automatisk skalering og App Service-planen
Automatisk skalering er en funktion i den App Service-plan, der bruges af webappen. Når webappen skaleres ud, starter Azure nye forekomster af den hardware, der er defineret af App Service Plan til appen.
En App Service-plan har en forekomstgrænse for at forhindre automatisk skalering. Planer i dyrere prisniveauer har en højere grænse. Automatisk skalering kan ikke oprette flere forekomster end denne grænse.
Seddel
Det er ikke alle App Service Plan-prisniveauer, der understøtter automatisk skalering.
Betingelser for automatisk skalering
Du angiver, hvordan du automatisk skalerer ved at oprette betingelser for automatisk skalering. Azure indeholder to muligheder for automatisk skalering:
- Skaler baseret på en metrikværdi, f.eks. længden af diskkøen eller antallet af HTTP-anmodninger, der afventer behandling.
- Skaler til et bestemt antal forekomster i henhold til en tidsplan. Du kan f.eks. arrangere at skalere ud på et bestemt tidspunkt på dagen eller på en bestemt dato eller ugedag. Du angiver også en slutdato, og systemet skaleres tilbage på nuværende tidspunkt.
Hvis du skalerer til et bestemt antal forekomster, kan du kun skalere ud til et defineret antal forekomster. Hvis du har brug for at skalere ud trinvist, kan du kombinere metrikværdi og tidsplanbaseret automatisk skalering i den samme autoskaleringsbetingelse. Så du kan arrangere, at systemet skaleres ud, hvis antallet af HTTP-anmodninger overskrider en grænse, men kun mellem bestemte timer på dagen.
Du kan oprette flere betingelser for automatisk skalering for at håndtere forskellige tidsplaner og målepunkter. Azure skalerer automatisk din tjeneste, når en af disse betingelser gælder. En App Service-plan har også en standardbetingelse, der bruges, hvis ingen af de andre betingelser er gældende. Denne betingelse er altid aktiv og har ikke en tidsplan.
Målepunkter for regler for automatisk skalering
Automatisk skalering efter metrikværdi kræver, at du definerer en eller flere regler for automatisk skalering. En regel for automatisk skalering angiver en metrikværdi, der skal overvåges, og hvordan automatisk skalering skal reagere, når denne metrikværdi krydser en defineret grænse. De målepunkter, du kan overvåge for en webapp, er:
- CPU-procent. Denne metrikværdi er en indikation af CPU-udnyttelsen på tværs af alle forekomster. En høj værdi viser, at forekomster bliver CPU-bundet, hvilket kan medføre forsinkelser i behandlingen af klientanmodninger.
- hukommelsesprocent. Denne metrikværdi registrerer programmets hukommelsesforbrug på tværs af alle forekomster. En høj værdi angiver, at den ledige hukommelse muligvis er ved at løbe tør og kan medføre, at en eller flere forekomster mislykkes.
- længden på diskkøen. Denne metrikværdi er et mål for antallet af udestående I/O-anmodninger på tværs af alle forekomster. En høj værdi betyder, at diskdisk strid kan forekomme.
- http-kølængde. Denne metrikværdi viser, hvor mange klientanmodninger der venter på behandling i webappen. Hvis dette tal er stort, kan klientanmodninger mislykkes med HTTP 408-fejl (timeout).
- data i. Denne metrikværdi er antallet af byte, der er modtaget på tværs af alle forekomster.
- data ud. Denne metrikværdi er antallet af byte, der er sendt af alle forekomster.
Du kan også skalere baseret på målepunkter for andre Azure-tjenester. Hvis webappen f.eks. behandler anmodninger, der er modtaget fra en Service Bus-kø, kan det være en god idé at spinde flere forekomster af en webapp op, hvis antallet af elementer i en Azure Service Bus-kø overskrider en kritisk længde.
Sådan analyserer en regel for automatisk skalering målepunkter
Automatisk skalering fungerer ved at analysere tendenser i metriske værdier over tid på tværs af alle forekomster. Analyse er en proces med flere trin.
I det første trin aggregerer en autoskaleringsregel de værdier, der er hentet for en metrikværdi for alle forekomster på tværs af en tidsperiode, der kaldes tidsgranulat. Hver metrikværdi har sin egen indbyggede tids detaljering, men i de fleste tilfælde er denne periode 1 minut. Den aggregerede værdi kaldes tidssammenlægning. De tilgængelige indstillinger er Average, Minimum, Maksimum, Sum, Sidsteog Antal.
Et interval på ét minut er et kort interval, hvor du kan afgøre, om en ændring i metrikværdien er langvarig nok til at gøre automatisk skalering umagen værd. En autoskaleringsregel udfører derfor endnu et trin, der udfører en yderligere aggregering af den værdi, der beregnes af tidssammenlægning over en længere, brugerdefineret periode, der kaldes Duration. Minimum varighed er 5 minutter. Hvis Varighed er angivet til 10 minutter, aggregerer autoskaleringsreglen de 10 værdier, der er beregnet for tidsgranulat.
Sammenlægningsberegningen for Varighed kan være forskellig fra tidsnulering. Hvis tidssammenlægning f.eks. er Gennemsnitlige, og den indsamlede statistik er CPU-procentdel på tværs af et minuts tids detaljering, beregnes den gennemsnitlige CPU-procentudnyttelse på tværs af alle forekomster for det pågældende minut. Hvis tidsnokstatistik er angivet til Maksimum, og reglens Varighed er angivet til 10 minutter, er maksimumværdien af de 10 gennemsnitlige værdier for CPU-procentudnyttelsen at afgøre, om regeltærsklen er overskredet.
Handlinger til automatisk skalering
Når en regel for automatisk skalering registrerer, at en metrikværdi har overskredet en grænse, kan den udføre en autoskaleringshandling. En autoskaleringshandling kan skaleres ud eller skalering. En scale-out-handling øger antallet af forekomster, og en skaleringshandling reducerer antallet af forekomster. En autoskaleringshandling bruger en operator (f.eks. mindre end, større end, lig medosv.) til at bestemme, hvordan du reagerer på tærsklen. Udskaleringshandlinger bruger typisk , der er større end operator, til at sammenligne metrikværdien med tærsklen. Skaleringshandlinger har en tendens til at sammenligne den metriske værdi med tærsklen med mindre end operator. En autoskaleringshandling kan også angive antallet af forekomster til et bestemt niveau i stedet for at forøge eller formindske det tilgængelige tal.
En autoskaleringshandling har en nedkøling periode, der er angivet i minutter. I løbet af dette interval udløses skalareglen ikke igen. Dette er for at gøre det muligt for systemet at stabilisere sig mellem hændelser med automatisk skalering. Husk, at det tager tid at starte eller lukke forekomster, så de indsamlede målepunkter viser muligvis ikke nogen væsentlige ændringer i flere minutter. Den minimale nedkølingsperiode er fem minutter.
Parring af regler for automatisk skalering
Du bør planlægge skalering, når en arbejdsbelastning reduceres. Overvej at definere regler for automatisk skalering parvis i den samme betingelse for automatisk skalering. En autoskaleringsregel skal angive, hvordan systemet skal skaleres ud, når en metrikværdi overskrider en øvre grænse. Derefter bør en anden regel definere, hvordan systemet skaleres ind igen, når den samme metrikværdi falder til under en lavere grænse.
Kombination af regler for automatisk skalering
En enkelt autoskaleringsbetingelse kan indeholde flere regler for automatisk skalering (f.eks. en skaleringsregel og den tilsvarende skaleringsregel). Reglerne for automatisk skalering i en autoskaleringsbetingelse behøver dog ikke at være direkte relateret. Du kan definere følgende fire regler i den samme autoskaleringsbetingelse:
- Hvis HTTP-kølængden overstiger 10, skaleres ud med 1
- Hvis CPU-udnyttelsen overstiger 70%, skaler ud med 1
- Hvis HTTP-køens længde er nul, skaleres ind med 1
- Hvis CPU-forbruget falder til under 50%, skaler ind med 1
Når du bestemmer, om skalering skaleres, udføres automatisk skaleringshandlingen, hvis nogen af udskaleringsreglerne er opfyldt (HTTP-kølængden overstiger 10 eller CPU-udnyttelse overstiger 70%). Når du skalerer ind, kører autoskaleringshandlingen kun , hvis alle af skaleringsreglerne er opfyldt (HTTP-køens længde falder til nul , og CPU-udnyttelse er under 50%). Hvis du har brug for at skalere ind, hvis kun én af skaleringsreglerne er opfyldt, skal du definere reglerne i separate autoskaleringsbetingelser.