Freigeben über


Autoskalierung mit mehreren Profilen

Die Skalierung Ihrer Ressourcen für einen bestimmten Wochentag oder ein bestimmtes Datum und eine Uhrzeit kann Ihre Kosten reduzieren und gleichzeitig die erforderliche Kapazität bereitstellen, wenn Sie sie benötigen.

Sie können mehrere Profile für die Autoskalierung verwenden, um zu verschiedenen Zeiten eine unterschiedliche Skalierung vorzunehmen. Wenn Ihr Unternehmen beispielsweise am Wochenende nicht arbeitet, erstellen Sie ein wiederkehrendes Profil, um Ihre Ressourcen an Samstagen und Sonntagen abzuskalieren. Wenn der „Black Friday“ ein besonders geschäftiger Tag ist, erstellen Sie ein Profil, um Ihre Ressourcen an diesem Tag automatisch aufzuskalieren.

In diesem Artikel werden die verschiedenen Profile für die Autoskalierung und ihre Verwendung erläutert.

Sie können in Ihrer Autoskalierungseinstellung ein oder mehrere Profile einrichten.

Es gibt drei Profiltypen:

  • Standardprofil. Das Standardprofil wird automatisch erstellt und ist nicht von einem Zeitplan abhängig. Das Standardprofil kann nicht gelöscht werden. Es wird verwendet, wenn keine anderen Profile vorhanden sind, die dem aktuellen Datum und der aktuellen Uhrzeit entsprechen.
  • Wiederkehrende Profile. Ein wiederkehrendes Profil gilt für einen bestimmten Zeitbereich und wiederholt sich an ausgewählten Wochentagen.
  • Profile mit festem Datum und fester Uhrzeit. Ein solches Profil ist in einem Zeitbereich an einem bestimmten Datum gültig.

Bei jeder Ausführung des Autoskalierungsdiensts werden die Profile in der folgenden Reihenfolge ausgewertet:

  1. Profile mit festem Datum
  2. Wiederkehrende Profile
  3. Standardprofil

Wenn die Datums- und Zeiteinstellungen eines Profils der aktuellen Zeit entsprechen, wendet die Autoskalierung die Regeln und Kapazitätsgrenzwerte dieses Profils an. Nur das erste zutreffende Profil wird verwendet.

Das folgende Beispiel zeigt eine Autoskalierungseinstellung mit einem Standardprofil und einem wiederkehrenden Profil.

Screenshot: Autoskalierungseinstellung mit Standardprofil und wiederkehrendem Profil oder Skalierungsbedingung

Im obigen Beispiel wird das wiederkehrende Profil am Montag nach 3 Uhr nicht mehr verwendet. Wenn die Anzahl der Instanzen kleiner als 3 ist, skaliert die Autoskalierung auf das neue Minimum von 3. Die Autoskalierung verwendet weiterhin dieses Profil und skaliert basierend auf der CPU-Auslastung (in Prozent) bis Montag um 20 Uhr. Zu allen anderen Zeiten erfolgt die Skalierung nach dem Standardprofil basierend auf der Anzahl von Anforderungen. Nach Montag um 20 Uhr wechselt die Autoskalierung zum Standardprofil. Wenn die Anzahl der Instanzen zu diesem Zeitpunkt beispielsweise 12 ist, skaliert die Autoskalierung auf den für das Standardprofil zulässigen Höchstwert von 10 ab.

Mehrere zusammenhängende Profile

Übergänge zwischen Profilen werden auf der Grundlage ihrer Startzeiten automatisch skaliert. Der Endzeitpunkt für ein bestimmtes Profil wird durch den Startzeitpunkt des folgenden Profils bestimmt.

Im Portal wird das Endzeitfeld zur nächsten Startzeit für das Standardprofil. Sie können nicht die gleiche Zeit für das Ende eines Profils und den Anfang des nächsten Profils angeben. Das Portal erzwingt, dass die Endzeit eine Minute vor der Startzeit des folgenden Profils liegt. Während dieser Minute wird das Standardprofil aktiv. Wenn Sie nicht möchten, dass zwischen wiederkehrenden Profilen das Standardprofil aktiv wird, lassen Sie das Endzeitfeld leer.

Tipp

Zum Einrichten mehrerer zusammenhängender Profile über das Portal lassen Sie die Endzeit leer. Das aktuelle Profil wird nicht mehr verwendet, wenn das nächste Profil aktiv wird. Geben Sie nur eine Endzeit an, wenn Sie zum Standardprofil zurückkehren möchten. Das Erstellen eines wiederkehrenden Profils ohne Endzeit wird nur über das Portal und mit ARM-Vorlagen unterstützt.

Erstellen mehrerer Profile mithilfe von Vorlagen, der Befehlszeilenschnittstelle und von PowerShell

Befolgen Sie beim Erstellen mehrerer Profile mithilfe von Vorlagen, der Befehlszeilenschnittstelle (Command Line Interface, CLI) und von PowerShell die folgenden Richtlinien.

Eine vollständige Vorlagenreferenz finden Sie im Abschnitt „Autoskalierung“ unter Ressourcendefinition mit einer ARM-Vorlage.

Die Vorlage enthält keine Angabe für die Endzeit. Ein Profil bleibt bis zum Startzeitpunkt des nächsten Profils aktiv.

Ein wiederkehrendes Profil mithilfe von ARM-Vorlagen hinzufügen

Das folgende Beispiel zeigt, wie Sie zwei wiederkehrende Profile erstellen. Ein Profil für Wochenenden ab 00:01 Uhr am Samstagmorgen und ein zweites Wochentagsprofil, das am Montag um 04:00 Uhr beginnt. Das bedeutet, dass das Wochenendprofil am Samstagmorgen um eine Minute nach Mitternacht beginnt und am Montagmorgen um 04:00 Uhr endet. Das Wochentagsprofil beginnt am Montag um 4 Uhr und endet am Samstagmorgen kurz nach Mitternacht.

Verwenden Sie den folgenden Befehl, um die Vorlage bereitzustellen: az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json. Dabei ist VMSS1-autoscale.json die Datei, die das folgende JSON-Objekt enthält.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Insights/autoscaleSettings",
            "apiVersion": "2015-04-01",
            "name": "VMSS1-Autoscale-607",
            "location": "eastus",
            "properties": {

                "name": "VMSS1-Autoscale-607",
                "enabled": true,
                "targetResourceUri": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                "profiles": [
                    {
                        "name": "Weekday profile",
                        "capacity": {
                            "minimum": "3",
                            "maximum": "20",
                            "default": "3"
                        },
                        "rules": [
                            {
                                "scaleAction": {
                                    "direction": "Increase",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "GreaterThan",
                                    "statistic": "Average",
                                    "threshold": 100,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            },
                            {
                                "scaleAction": {
                                    "direction": "Decrease",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "LessThan",
                                    "statistic": "Average",
                                    "threshold": 60,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            }
                        ],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Monday"
                                ],
                                "hours": [
                                    4
                                ],
                                "minutes": [
                                    0
                                ]
                            }
                        }
                    },
                    {
                        "name": "Weekend profile",
                        "capacity": {
                            "minimum": "1",
                            "maximum": "3",
                            "default": "1"
                        },
                        "rules": [],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Saturday"                                    
                                ],
                                "hours": [
                                    0
                                ],
                                "minutes": [
                                    1
                                ]
                            }
                        }
                    }
                ],
                "notifications": [],
                "targetResourceLocation": "eastus"
            }

        }
    ]
}    

Nächste Schritte