Implementieren der Skalierung pro App für Hosting mit hoher Dichte

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Sie können Ihre Azure App Service-Apps skalieren, indem Sie den App Service-Plan skalieren, auf dem sie ausgeführt werden. Standardmäßig lautet die perSiteScaling-Eigenschaft auf Planebene false, und jeder App- und Bereitstellungsslot verwendet alle im Plan verfügbaren Instanzen.

Wenn perSiteScalingtrue ist, kann jede App und jeder Deployment-Slot ein eigenes siteConfig.numberOfWorkers-Limit haben. Zum Beispiel kann ein Plan eine konfigurierte Kapazität von 10 Arbeitern haben, während eine App ein konfiguriertes Limit von fünf Arbeitern hat. Jeder Deployment-Slot hat seine eigene Begrenzung; die Konfiguration der Produktions-App konfiguriert nicht auch ihre Slots.

Hinweis

  • Die Skalierung pro App ist nur für Standard-, Premium-, Premium V2-, Premium V3- und Isolierte Preisstufen verfügbar.
  • Ein Pro-App-Limit reduziert nicht die für den App Service-Plan konfigurierte dedizierte Kapazität oder dessen Abrechnung an sich.

Halten Sie diese Werte getrennt:

  • Konfigurierte Plankapazität: Der sku.capacity-Wert des Plans.
  • Konfiguriertes App- oder Slot-Worker-Limit: der Wert siteConfig.numberOfWorkers der Ressource.
  • Beobachtete aktive App-Instanzen: Eine Point-in-Time-Laufzeit-Beobachtung. Die tatsächliche Anzahl darf die verfügbaren Planmitarbeiter nicht übersteigen. Durch eine Abskalierung des Plans kann diese Anzahl unter das konfigurierte App- oder Slot-Limit reduziert werden.

Die Plattform platziert eine App mithilfe eines Best-Effort-Ansatzes auf unterschiedlichen verfügbaren Plan-Workern. Die Platzierung ist unabhängig von Metriken.

Szenario Wertsemantik
Grenze von 1 Die App oder der Slot kann höchstens einen verfügbaren Tarifmitarbeiter nutzen. Wähle diesen Wert nur, wenn eine Ein-Mitarbeiter-Vermittlung für die Arbeitsbelastung akzeptabel ist.
Grenzwert größer als 1 Der Wert begrenzt, wie viele verschiedene Plan-Worker die App oder der Slot nutzen können. Tatsächlich aktive Fälle können seltener sein.
Limit über der Kapazität des verfügbaren Plans Die verfügbaren Plan-Worker begrenzen die tatsächlichen App- oder Slot-Instanzen.
Verkleinerung planen Die App oder der Slot kann nach dem Entfernen der Planarbeiter mit weniger Arbeitern als dem konfigurierten Limit betrieben werden.

Die Skalierung pro App ist eine feste, metrik-unabhängige Platzierung innerhalb der verfügbaren Arbeitskräfte des Plans. Es reagiert nicht auf die Nachfrage und ändert die Plankapazität nicht. Um die Kapazität basierend auf der Nachfrage zu ändern, verwenden Sie automatische Skalierung oder Azure Monitor-Autoskalierung.

Von Bedeutung

Zonenredundanz verteilt App-Service-Planinstanzen; es erstellt keine versteckten App-Replikate. Bei der appbasierten Skalierung erlaubt ein App- oder Slot-Limit von 1 die Platzierung auf höchstens einer Planinstanz und darf nicht als gleichzeitige zonenübergreifende Replik behandelt werden. Beschränkungen 2 oder mehr erlauben die Platzierung mehrerer unterschiedlicher Plan-Mitarbeiter, bieten aber keine öffentliche Garantie, dass diese App-Instanzen physische Zonen umfassen. Für Richtlinien zum Zuverlässigkeitsdesign siehe Zuverlässigkeit im App-Service.

Eigenschaftsmodell und Voraussetzungen

Nutze eine unterstützte Preisklasse, ein Konto, das den Plan, die App und den Slot aktualisieren kann, sowie die aktuelle Version deines gewählten Tools. Die Beispiele verwenden Azure CLI 2.89.1 und Az PowerShell 16.2.0.

Geltungsbereich Ressourceneigenschaft Beispiel
Planungsfunktion properties.perSiteScaling true
Kapazität planen sku.capacity 10
Gewünschtes App-Limit properties.siteConfig.numberOfWorkers 5
Gewünschtes Slot-Limit properties.siteConfig.numberOfWorkers 2
GET-Antwort für App- oder Slot-Konfiguration properties.numberOfWorkers 5 oder 2

In der Azure CLI haben ähnlich benannte Optionen unterschiedliche Geltungsbereiche: az appservice plan ... --number-of-workers legt die Plankapazität fest, während az webapp config set ... --number-of-workers das Limit für die App oder den Slot festlegt.

Konfigurieren Sie die Skalierung pro App

Nutze den Tab für dein bevorzugtes Werkzeug. Ersetzen Sie Platzhalternamen und -standorte, bevor Sie einen Befehl ausführen oder eine Vorlage bereitstellen.

Wählen Sie entweder den Erstellungsschritt oder den Update-Schritt für den Plan. Im Aktualisierungsschritt wird nur perSiteScaling geändert; die vorhandene Plankapazität wird nicht geändert.

resourceGroup='<resource-group-name>'
planName='<app-service-plan-name>'
appName='<app-name>'
slotName='staging'
location='westus3'

# Create a plan with capacity 10 and per-app scaling.
az appservice plan create \
    --resource-group $resourceGroup \
    --name $planName \
    --location $location \
    --sku P1V3 \
    --number-of-workers 10 \
    --per-site-scaling

# Or enable per-app scaling on an existing plan without changing its capacity.
az appservice plan update \
    --resource-group $resourceGroup \
    --name $planName \
    --set properties.perSiteScaling=true

# Configure the production app and its staging slot independently.
az webapp config set \
    --resource-group $resourceGroup \
    --name $appName \
    --number-of-workers 5

az webapp config set \
    --resource-group $resourceGroup \
    --name $appName \
    --slot $slotName \
    --number-of-workers 2

Hier ist der Plan --number-of-workers 10 die Kapazität. Die Web-App-Konfigurationsoption mit demselben Namen ist das gewünschte App- oder Slot-Limit. Inspizieren Sie die konfigurierten Werte:

az appservice plan show \
    --resource-group $resourceGroup \
    --name $planName \
    --query "{planCapacity:sku.capacity, perSiteScaling:perSiteScaling}"

az webapp config show \
    --resource-group $resourceGroup \
    --name $appName \
    --query "{appWorkerLimit:numberOfWorkers}"

az webapp config show \
    --resource-group $resourceGroup \
    --name $appName \
    --slot $slotName \
    --query "{slotWorkerLimit:numberOfWorkers}"

Für Befehlsdetails siehe az appservice plan und az webapp config.

Überprüfen der Konfiguration

Überprüfen Sie jeden konfigurierten Wert nach einer Änderung oder Bereitstellung.

Wert Erwartetes Beispiel Wo sollte überprüft werden?
Planungsfunktion true Planreaktion properties.perSiteScaling
Kapazität planen 10 Planreaktion: sku.capacity
Gewünschter Grenzwert der Produktions-App 5 Produktionsconfig/webantwort properties.numberOfWorkers
Gewünschtes Limit für den Staging-Slot 2 Slot config/web Antwort properties.numberOfWorkers

Diese Werte sind Konfigurationswerte, keine beobachteten aktiven Instanzzählungen. Die Platzierung zur Laufzeit erfolgt weiterhin nach bestem Bemühen und ist durch die im Plan verfügbaren Worker begrenzt. Bevor Sie das Skalieren pro App mit Zonenredundanz kombinieren, überprüfen Sie die Plankapazität und jedes App- oder Slotlimit in Set Zone Redundancy für einen bestehenden App Service-Plan.

Konfigurieren Sie High-Density-Hosting für Ihr Szenario

Pro-App-Skalierung ist sowohl in globalen Azure-Regionen als auch in App Service Umgebungen verfügbar. Wählen Sie App- und Slot-Limits entsprechend den Anforderungen an Arbeitslastkapazität und Zuverlässigkeit, anstatt auf jede Arbeitslast ein Limit anzuhängen.

Für ein hochdichtes Hosting-Szenario:

  1. Legen Sie einen App Service-Plan als Hochdichteplan fest, und skalieren Sie ihn auf die gewünschte Kapazität.

  2. Legen Sie die PerSiteScaling Kennzeichnung im App Service-Plan auf "true" fest.

  3. Setze das Limit für jede App und jeden Deployment-Slot numberOfWorkers entsprechend ihren Bedürfnissen.

    • Ein Limit von 1 bietet die höchste Dichte, aber es wird nur für Arbeitslasten verwendet, bei denen eine Vermittlung auf höchstens einem Planmitarbeiter akzeptabel ist.
    • Verwenden Sie ein Limit von 2 oder mehr, wenn die Workload für die Platzierung auf mehreren unterschiedlichen Plan-Workern infrage kommen soll, vorbehaltlich der verfügbaren Plankapazität.
  4. Überprüfe die Grenzen unabhängig, da sich die Arbeitsbelastungsanforderungen ändern. Zum Beispiel kann eine App mit höherer Nutzung ein Limit von 3 für mehr Rechenleistung verwenden, während eine andere App nutzen 1 kann, wenn eine Single-Worker-Platzierung angemessen ist.