Factoren identificeren om automatische schaalaanpassing te implementeren

Voltooid

Met automatisch schalen kunt u de voorwaarden opgeven waaronder een web-app moet worden uitgeschaald en vervolgens weer inschalen. Effectieve automatische schaalaanpassing zorgt ervoor dat er voldoende resources beschikbaar zijn voor het verwerken van grote hoeveelheden aanvragen op piekmomenten, terwijl ook de overheadkosten omlaag blijven wanneer de vraag afneemt.

U kunt automatische schaalaanpassing configureren om te detecteren wanneer u wilt uitschalen en inschalen op basis van een combinatie van factoren op basis van resourcegebruik. U kunt automatisch schalen ook configureren volgens een schema.

In deze les leert u hoe u de factoren opgeeft die kunnen worden gebruikt voor het automatisch schalen van een webservice.

Automatisch schalen en App Service-plannen

Wanneer u een web-app maakt, maakt u ook een App Service-plan. Het App Service-plan definieert het besturingssysteem (Windows of Linux) dat wordt gebruikt als host voor de web-app. De prijscategorie van het abonnement geeft de beschikbare hardware op (geheugencapaciteit, CPU-verwerkingscapaciteit, schijfopslag) en andere services, zoals regelmatige back-ups voor elk exemplaar van de web-app.

Automatische schaalaanpassing is een functie van het App Service-plan dat wordt gebruikt door de web-app. Wanneer de web-app wordt uitgeschaald, start Azure meer exemplaren van de hardware die is gedefinieerd door het App Service-plan naar de app.

Om kostbare automatische schaalaanpassing te voorkomen, heeft een App Service-plan een exemplaarlimiet. Abonnementen in duurdere prijscategorieën hebben hogere instantielimieten. Automatisch schalen kan de instantielimiet van het App Service-plan niet overschrijden. De Standard-serie serviceplannen ondersteunt bijvoorbeeld maximaal 10 exemplaren tegen een geschatte kosten van $ 0,40 per uur voor elk exemplaar. De Premium-reeks serviceabonnementen maakt maximaal 20 exemplaren mogelijk tegen een geschatte kosten van $ 0,80 per uur voor elk exemplaar. De geïsoleerde serviceplannen staan maximaal 100 exemplaren toe tegen een geschatte kosten van $ 1,60 per uur voor elk exemplaar.

Notitie

Niet alle prijscategorieën voor App Service-plan ondersteunen automatische schaalaanpassing.

Voorwaarden voor automatische schaalaanpassing

U geeft aan hoe automatisch wordt geschaald door voorwaarden voor automatische schaalaanpassing te maken. Azure biedt twee opties voor automatische schaalaanpassing:

  • Schalen op basis van een metrische waarde, zoals de lengte van de schijfwachtrij of het aantal HTTP-aanvragen dat wacht op verwerking.
  • Pas de schaal aan op een specifiek aantal exemplaren op basis van een schema. U kunt bijvoorbeeld schalen op een bepaald tijdstip of op een bepaalde datum of dag van de week. U kunt ook een tijd of datum opgeven voor het systeem om weer in te schalen.

Wanneer u de schaal aanpast op een opgegeven aantal exemplaren, kunt u uitschalen naar een specifiek aantal exemplaren. Als u incrementeel wilt uitschalen, kunt u automatisch schalen op basis van metrische gegevens en schema's combineren in één voorwaarde voor automatische schaalaanpassing. U kunt er bijvoorbeeld voor zorgen dat het systeem wordt uitgeschaald als het aantal HTTP-aanvragen een ingestelde drempelwaarde overschrijdt, maar alleen tussen bepaalde uren van de dag.

U kunt meerdere voorwaarden voor automatische schaalaanpassing maken voor het verwerken van verschillende schema's en metrische gegevens. Azure schaalt uw service automatisch wanneer een van de vastgestelde voorwaarden van toepassing is. Elk App Service-plan heeft ook een standaardvoorwaarde voor automatisch schalen die wordt gebruikt als er geen andere voorwaarden van toepassing zijn. De standaardvoorwaarde voor automatisch schalen is altijd actief en heeft geen planning.

Metrische gegevens voor regels voor automatische schaalaanpassing

Voor automatische schaalaanpassing op basis van metrische gegevens is vereist dat u een of meer regels voor automatische schaalaanpassing definieert. In een regel voor automatische schaalaanpassing wordt opgegeven welke metrische waarde moet worden gecontroleerd en hoe de schaal automatisch moet worden aangepast wanneer deze waarde een ingestelde drempel overschrijdt. In de volgende lijst worden de metrische gegevens beschreven die u voor een web-app kunt bewaken:

  • CPU-percentage geeft het CPU-gebruik voor alle exemplaren aan. Een hoog CPU-percentage geeft aan dat exemplaren CPU-afhankelijk worden, wat vertragingen kan veroorzaken bij het verwerken van clientaanvragen.
  • Het geheugenpercentage legt de geheugenbezetting van de toepassing vast voor alle exemplaren. Een hoog geheugenpercentage geeft aan dat het vrije geheugen laag kan zijn, waardoor een of meer exemplaren kunnen mislukken.
  • De lengte van de schijfwachtrij meet het aantal openstaande I/O-aanvragen voor alle exemplaren. Een hoge schijfwachtrijlengte betekent dat er sprake kan zijn van schijfconflicten.
  • Http Queue Length laat zien hoeveel clientaanvragen wachten op verwerking door de web-app. Als de lengte van de http-wachtrij groot is, kunnen clientaanvragen mislukken met HTTP 408-fouten (Time-out).
  • Data In is het aantal bytes dat is ontvangen voor alle exemplaren.
  • Gegevens-out is het aantal bytes dat wordt verzonden over alle exemplaren.

U kunt de schaal ook aanpassen op basis van metrische gegevens voor andere Azure-services. Als een web-app bijvoorbeeld aanvragen verwerkt die zijn ontvangen van een Service Bus-wachtrij, kunt u meer exemplaren van die app instellen als het aantal items in een Azure Service Bus-wachtrij een kritieke lengte overschrijdt.

Hoe de metrische gegevens door een regel voor automatische schaalaanpassing wordt geanalyseerd

Automatisch schalen werkt door trends in metrische waarden in de loop van de tijd en voor alle exemplaren te analyseren. Een analyse is een proces met meerdere stappen.

In de eerste stap worden volgens een regel voor automatische schaalaanpassing de waarden geaggregeerd die op basis van een metrische waarde zijn opgehaald voor alle exemplaren gedurende een bepaalde periode. Dit wordt ook wel het tijdsinterval genoemd. Elke metriek heeft een eigen intrinsieke tijdsinterval, maar in de meeste gevallen is deze periode één minuut. De geaggregeerde waarde wordt ook wel de tijdaggregatie genoemd. De opties voor tijdaggregatie zijn Gemiddeld, Minimum, Maximum, Totaal, Laatste en Aantal.

Een minuut is een kort interval waarin wordt bepaald of een wijziging in metrische gegevens langdurig genoeg is om automatisch schalen de moeite waard te maken. Een regel voor automatische schaalaanpassing voert dus een tweede aggregatie uit van de waarde die wordt berekend door de tijdaggregatie gedurende een langere, door de gebruiker opgegeven periode, ook wel de duur genoemd. De minimumwaarde voor Duur is vijf minuten. Als de duur is ingesteld op 10 minuten, worden met de regel voor automatische schaalaanpassing bijvoorbeeld de tien waarden geaggregeerd die voor de tijdsinterval worden berekend.

De aggregatieberekening voor de duur kan afwijken van de aggregatieberekening voor het tijdsinterval. Als de tijdaggregatie bijvoorbeeld Gemiddeld is en de verzamelde metrische waarde CPU-percentage is voor een tijdsinterval van één minuut, wordt elke minuut het gemiddelde CPU-percentagegebruik berekend voor alle exemplaren voor die minuut.

Stel dat de tijdaggregatie is ingesteld op Maximum en dat de duur van de regel is ingesteld op 10 minuten. In deze voorbeeldconfiguratie wordt het maximum van de 10 gemiddelde waarden voor het CPU-percentagegebruik gebruikt om te bepalen of de regeldrempel is overschreden.

Acties voor automatische schaalaanpassing

Wanneer een regel voor automatische schaalaanpassing detecteert dat een metrische waarde een drempelwaarde heeft overschreden, kan de regel voor automatisch schalen een actie voor automatisch schalen uitvoeren. Een actie voor automatische schaalaanpassing kan uitschalen of inschalen inhouden. Een uitschaalactie verhoogt het aantal exemplaren en een inschaalactie verlaagt het aantal exemplaren. Een actie voor automatische schaalaanpassing maakt gebruik van een operator (zoals minder dan, groter dan, gelijk aan, enzovoort) om te bepalen hoe op de drempelwaarde moet worden gereageerd. Uitschaalacties maken gewoonlijk gebruik van de operator groter dan om de metrische waarde te vergelijken met de drempelwaarde. Inschaalacties vergelijken meestal de metrische waarde met de drempelwaarde met behulp van de operator minder dan. Een actie voor automatische schaalaanpassing kan ook het aantal exemplaren instellen op een bepaald niveau, in plaats van het beschikbare aantal te verhogen of verlagen.

Een actie voor automatisch schalen heeft een afkoelperiode , opgegeven in minuten. Tijdens de afkoelperiode wordt de schaalregel niet opnieuw geactiveerd. Met de afkoelperiode kan het systeem zich stabiliseren tussen gebeurtenissen met automatische schaalaanpassing. Houd er rekening mee dat het enige tijd kost om instanties te starten of af te sluiten, zodat metrische gegevens die zijn verzameld, mogelijk enkele minuten geen significante wijzigingen tonen. De minimale afkoelperiode is vijf minuten.

Regels voor automatische schaalaanpassing koppelen

U moet een inschaling plannen wanneer een werkbelasting afneemt. U kunt overwegen om in dezelfde voorwaarde voor automatische schaalaanpassing regels voor automatische schaalaanpassing in paren te definiëren. Een regel voor automatische schaalaanpassing moet aangeven hoe het systeem moet worden uitgeschaald wanneer een metrische waarde een hogere drempelwaarde overschrijdt. Vervolgens moet een andere regel definiëren hoe het systeem weer moet worden ingeschaald wanneer dezelfde metrische gegevens onder een lagere drempelwaarde vallen.

Regels voor automatische schaalaanpassing combineren

Eén voorwaarde voor automatisch schalen kan verschillende regels voor automatisch schalen bevatten (zoals een uitschaalregel en de bijbehorende regel voor inschalen). De regels voor automatische schaalaanpassing in een voorwaarde voor automatische schaalaanpassing hoeven echter niet direct aan elkaar te zijn gerelateerd. U kunt bijvoorbeeld de volgende vier regels voor automatisch schalen definiëren in één voorwaarde voor automatische schaalaanpassing:

  • Als de lengte van de HTTP-wachtrij groter is dan 10, schaalt u uit met één
  • Als het CPU-gebruik hoger is dan 70 procent, schaalt u uit met één
  • Als de lengte van de HTTP-wachtrij gelijk is aan nul, schaalt u in met één
  • Als het CPU-gebruik lager is dan 50 procent, schaalt u in met één

Bij het bepalen of moet worden uitgeschaald, wordt de actie voor automatisch schalen uitgevoerd als aan een van de uitschaalregels wordt voldaan (de LENGTE van de HTTP-wachtrij overschrijdt 10 of het CPU-gebruik overschrijdt 70 procent). Wanneer u inschaalt, wordt de actie voor automatisch schalen alleen uitgevoerd als aan alle regels voor inschalen wordt voldaan (HTTP-wachtrijlengte daalt tot nul en het CPU-gebruik lager is dan 50 procent). Als u wilt inschalen als aan slechts één regel voor inschalen wordt voldaan, moet u de regels definiëren in afzonderlijke voorwaarden voor automatisch schalen.