Automatisch schalen in Azure-app Service
Notitie
Automatisch schalen is beschikbaar voor alle app-typen: Windows en Linux (implementeren als code en container). Automatisch schalen wordt niet ondersteund voor implementatiesiteverkeer.
Automatisch schalen is een nieuwe uitschaaloptie die automatisch beslissingen voor schaalaanpassing voor uw web-apps en App Service-plannen afhandelt. Dit verschilt van de bestaande automatische schaalaanpassing van Azure, waarmee u schaalregels kunt definiëren op basis van planningen en resources. Met automatisch schalen kunt u de schaalinstellingen aanpassen om de prestaties van uw app te verbeteren en problemen met koude start te voorkomen. Het platform voorbewarmt exemplaren om als buffer te fungeren bij het uitschalen, waardoor soepele prestatieovergangen worden gegarandeerd. Er worden kosten per seconde in rekening gebracht voor elk exemplaar, inclusief vooraf inwarmende exemplaren.
Een vergelijking van opties voor uitschalen en inschalen die beschikbaar zijn in App Service:
Handmatig | Automatisch schalen | Automatisch schalen | |
---|---|---|---|
Beschikbare prijscategorieën | Basis en omhoog | Standaard en omhoog | Premium V2 (P1V2, P2V2, P3V2) en Premium V3 (P0V3, P1V3, P2V3, P3V3, P1MV3, P2MV3, P3MV3, P4MV3, P5MV3) prijscategorieën |
Op regels gebaseerd schalen | Nr. | Ja | Nee, het platform beheert de uitschalen en inschalen op basis van HTTP-verkeer. |
Schaalaanpassing op basis van een planning | Nr. | Ja | Nr. |
Altijd gereede exemplaren | Nee, uw web-app wordt uitgevoerd op het aantal handmatig geschaalde exemplaren. | Nee, uw web-app wordt uitgevoerd op andere exemplaren die beschikbaar zijn tijdens de uitschaalbewerking, op basis van de drempelwaarde die is gedefinieerd voor regels voor automatische schaalaanpassing. | Ja (minimaal 1) |
Vooraf opgewarmde exemplaren | Nee | Nr. | Ja (standaard 1) |
Maximum per app | Nee | No | Ja |
Hoe automatisch schalen werkt
U schakelt automatisch schalen in voor een App Service-plan en configureert een reeks exemplaren voor elk van de web-apps. Wanneer uw web-app HTTP-verkeer ontvangt, bewaakt App Service de belasting en voegt exemplaren toe. Resources kunnen worden gedeeld wanneer meerdere web-apps binnen een App Service-plan tegelijkertijd moeten worden uitgeschaald.
Hier volgen enkele scenario's waarin u automatisch moet uitschalen:
- U wilt geen regels voor automatisch schalen instellen op basis van metrische gegevens van resources.
- U wilt dat uw web-apps binnen hetzelfde App Service-plan verschillend en onafhankelijk van elkaar worden geschaald.
- Uw web-app is verbonden met een database of een verouderd systeem, dat mogelijk niet zo snel kan worden geschaald als de web-app. Door automatisch te schalen kunt u het maximum aantal exemplaren instellen waarnaar uw App Service-plan kan worden geschaald. Met deze instelling kan de web-app de back-end niet overbelasten.
Automatisch schalen inschakelen
Maximale burst is het hoogste aantal exemplaren dat uw App Service-plan kan verhogen op basis van binnenkomende HTTP-aanvragen. Voor Premium v2 & v3-abonnementen kunt u een maximale burst van maximaal 30 exemplaren instellen. De maximale burst moet gelijk zijn aan of groter zijn dan het aantal werkrollen dat is opgegeven voor het App Service-plan.
Als u automatisch schalen wilt inschakelen, gaat u naar het linkermenu van de web-app en selecteert u uitschalen (App Service-plan). Selecteer Automatisch, werk de waarde maximale burst bij en selecteer de knop Opslaan .
Minimumaantal web-app-exemplaren instellen
Altijd gereede exemplaren is een instelling op app-niveau om het minimale aantal exemplaren op te geven. Als de belasting groter is dan wat de altijd gereede exemplaren kunnen verwerken, worden er extra exemplaren toegevoegd (maximaal de opgegeven maximale burst voor het App Service-plan).
Als u het minimale aantal web-app-exemplaren wilt instellen, gaat u naar het linkermenu van de web-app en selecteert u uitschalen (App Service-plan). Werk de waarde voor altijd gereede instanties bij en selecteer de knop Opslaan .
Maximum aantal web-app-exemplaren instellen
Met de maximale schaallimiet stelt u het maximum aantal exemplaren in waar een web-app naar kan worden geschaald. De maximale schaallimiet helpt wanneer een downstreamonderdeel zoals een database een beperkte doorvoer heeft. Het maximum per app kan tussen 1 en de maximale burst zijn.
Als u het maximum aantal web-app-exemplaren wilt instellen, gaat u naar het linkermenu van de web-app en selecteert u uitschalen (App Service-plan). Selecteer Uitschaallimiet afdwingen, werk de maximale schaallimiet bij en selecteer de knop Opslaan .
Vooraf opgewarmde exemplaren bijwerken
De instelling voor een voorafwarmd exemplaar biedt verwarmde exemplaren als buffer tijdens HTTP-schaal- en activeringsgebeurtenissen. Voorbewarmde exemplaren blijven bufferen totdat de maximale uitschaallimiet is bereikt. Het standaardaantal voorbewarmde exemplaren is 1 en voor de meeste scenario's moet deze waarde als 1 blijven.
U kunt de instelling voor een voorafwarmd exemplaar niet wijzigen in de portal. U moet in plaats daarvan de Azure CLI gebruiken.
Automatisch schalen uitschakelen
Als u automatisch schalen wilt uitschakelen, gaat u naar het linkermenu van de web-app en selecteert u uitschalen (App Service-plan). Selecteer Handmatig en selecteer de knop Opslaan .
Ondersteunt automatisch schalen Azure Function-apps?
Let op
Automatisch schalen is uitgeschakeld wanneer App Service-web-apps en Azure Function-apps zich in hetzelfde App Service-plan bevinden.
Nee, u kunt alleen Azure-app Service-web-apps hebben in het App Service-plan waar u automatisch schalen wilt inschakelen. Voor Functions is het raadzaam om in plaats daarvan het Azure Functions Premium-abonnement te gebruiken.
Hoe werkt automatisch schalen achter de schermen?
Toepassingen die zijn ingesteld op automatisch schalen, worden continu bewaakt, waarbij de statusevaluaties van werknemers ten minste eenmaal per paar seconden plaatsvinden. Als het systeem een verhoogde belasting van de toepassing detecteert, worden statuscontroles vaker uitgevoerd. In het geval van verslechterende werkstatus en trage aanvragen worden extra exemplaren aangevraagd. De snelheid waarmee exemplaren worden toegevoegd, varieert op basis van het laadpatroon en de opstarttijd van de afzonderlijke toepassing. Toepassingen met korte opstarttijden en onregelmatige bursts van belasting kunnen elke paar seconden aan een minuut één virtuele machine zien toevoegen.
Zodra de belasting afzakt, start het platform een beoordeling voor mogelijke inschalen. Dit proces begint doorgaans ongeveer 5-10 minuten nadat de belasting stopt. Tijdens het inschalen worden exemplaren verwijderd met een maximale snelheid van één om de paar seconden tot een minuut.
Bovendien, als er meerdere webtoepassingen worden geïmplementeerd binnen hetzelfde App Service-plan, probeert het platform resources toe te wijzen over beschikbare exemplaren op basis van de belasting van elke afzonderlijke webtoepassing.
Hoe kan ik worden gefactureerd voor voorafwarmde exemplaren?
Als u wilt weten hoe u wordt gefactureerd voor voorafwarmde exemplaren, kunt u dit scenario overwegen: Stel dat uw web-app vijf exemplaren heeft die altijd gereed zijn, samen met één voorafwarmd exemplaar dat als standaard is ingesteld.
Wanneer uw web-app niet actief is en geen HTTP-aanvragen ontvangt, wordt deze uitgevoerd met de vijf altijd gereede exemplaren. Gedurende deze tijd worden er geen kosten in rekening gebracht voor een voorafwarmd exemplaar, omdat de altijd gereede exemplaren niet worden gebruikt en er dus geen vooraf opgewarmde instantie wordt toegewezen.
Zodra uw web-app ECHTER HTTP-aanvragen ontvangt en de vijf altijd gereede exemplaren actief worden, wordt er een voorafwarmd exemplaar toegewezen en wordt de facturering voor deze app gestart.
Als de snelheid van HTTP-aanvragen steeds groter blijft en App Service besluit om te schalen buiten de eerste vijf exemplaren, wordt het voorafwarmde exemplaar gebruikt. Dit betekent dat wanneer er zes actieve exemplaren zijn, er onmiddellijk een zevende exemplaar wordt ingericht om de vooraf gevulde buffer te vullen.
Dit proces van schalen en voorverwarmen gaat door totdat het maximumaantal exemplaren voor de app is bereikt. Het is belangrijk om te weten dat er geen exemplaren worden vooraf of geactiveerd buiten het maximumaantal exemplaren.
Waarom heeft AppServiceHTTPLogs logboekvermeldingen die vergelijkbaar zijn met '/admin/host/ping' met een 404-status?
Automatisch schalen van App Service controleert periodiek het /admin/host/ping
eindpunt samen met andere statuscontrolemechanismen die inherent zijn aan het platform. Deze controles zijn specifiek geïmplementeerde functies. Af en toe, vanwege bestaande platformconfiguraties, kunnen 404-fouten worden geretourneerd door deze pings. Het is echter belangrijk om te weten dat deze 404-fouten geen invloed mogen hebben op de beschikbaarheid of schaalprestaties van uw app.
Als uw web-app een 5xx-status retourneert, kunnen deze eindpunt pings leiden tot onregelmatige herstarts, hoewel dit ongebruikelijk is. We implementeren momenteel verbeteringen om deze onregelmatige herstarts aan te pakken. Tot die tijd moet u ervoor zorgen dat uw web-app geen 5xx-status retourneert op dit eindpunt. Houd er rekening mee dat deze ping-eindpunten niet kunnen worden aangepast.
Hoe kan ik het aantal uitgeschaalde exemplaren bijhouden tijdens de gebeurtenis Automatisch schalen?
De metric AutomaticScalingInstanceCount rapporteert het aantal virtuele machines waarop de app wordt uitgevoerd, inclusief het voorafwarmde exemplaar als deze wordt geïmplementeerd. Deze metrische waarde kan ook worden gebruikt om het maximum aantal exemplaren bij te houden dat uw web-app is uitgeschaald tijdens een gebeurtenis voor automatisch schalen. Deze metrische waarde is alleen beschikbaar voor de apps waarvoor Automatisch schalen is ingeschakeld.
Hoe heeft ARR-affiniteit invloed op automatisch schalen?
Azure-app Service maakt gebruik van cookies voor routering van toepassingsaanvragen, ook wel ARR-affiniteit genoemd. ARR Affinity-cookies beperken het schalen, omdat ze alleen aanvragen verzenden naar servers die zijn gekoppeld aan de cookie, in plaats van een beschikbaar exemplaar. Voor apps die de status opslaan, is het beter om omhoog te schalen (resources op één exemplaar te vergroten). Voor staatloze apps biedt uitschalen (meer exemplaren toevoegen) meer flexibiliteit en schaalbaarheid. Cookies voor ARR-affiniteit zijn standaard ingeschakeld in App Service. Afhankelijk van uw toepassingsbehoeften kunt u ervoor kiezen om ARR-affiniteitscookies uit te schakelen bij het gebruik van automatisch schalen.
Als u ARR Affinity-cookies wilt uitschakelen: selecteer uw App Service-app en selecteer onder Instellingen de optie Configuratie. Selecteer vervolgens het tabblad Algemene instellingen . Selecteer onder ARR-affiniteit de optie Uit en selecteer vervolgens de knop Opslaan .