Dela via


Autoskalning med flera profiler

Att skala dina resurser för en viss dag i veckan eller ett visst datum och en viss tid kan minska dina kostnader samtidigt som du tillhandahåller den kapacitet du behöver när du behöver det.

Du kan använda flera profiler i autoskalning för att skala på olika sätt vid olika tidpunkter. Om ditt företag till exempel inte är aktivt under helgen skapar du en återkommande profil för att skala in dina resurser på lördagar och söndagar. Om black Friday är en hektisk dag skapar du en profil för att automatiskt skala ut dina resurser på svart fredag.

Den här artikeln beskriver de olika profilerna i autoskalning och hur du använder dem.

Du kan ha en eller flera profiler i autoskalningsinställningen.

Det finns tre typer av profil:

  • Standardprofilen. Standardprofilen skapas automatiskt och är inte beroende av ett schema. Det går inte att ta bort standardprofilen. Standardprofilen används när det inte finns några andra profiler som matchar aktuellt datum och tid.
  • Återkommande profiler. En återkommande profil är giltig för ett visst tidsintervall och upprepas för valda veckodagar.
  • Datum- och tidsprofiler har åtgärdats. En profil som är giltig för ett tidsintervall på ett visst datum.

Varje gång autoskalningstjänsten körs utvärderas profilerna i följande ordning:

  1. Profiler för fast datum
  2. Återkommande profiler
  3. Standardprofil

Om en profils datum- och tidsinställningar matchar den aktuella tiden tillämpar autoskalning profilens regler och kapacitetsbegränsningar. Endast den första tillämpliga profilen används.

Exemplet nedan visar en autoskalningsinställning med en standardprofil och återkommande profil.

A screenshot showing an autoscale setting with default and recurring profile or scale condition.

I exemplet ovan, måndag efter 03.00, upphör den återkommande profilen att användas. Om antalet instanser är mindre än 3 skalas autoskalningen till det nya minimumet på tre. Autoskalning fortsätter att använda den här profilen och skalar baserat på CPU% fram till måndag kl. 20.00. Vid alla andra tillfällen utförs skalning enligt standardprofilen, baserat på antalet begäranden. Efter 20.00 på måndag växlar autoskalning till standardprofilen. Om till exempel antalet instanser vid den tidpunkten är 12 skalas autoskalningen in till 10, vilket är det högsta tillåtna värdet för standardprofilen.

Flera sammanhängande profiler

Autoskalning av övergångar mellan profiler baserat på deras starttider. Sluttiden för en viss profil bestäms av starttiden för följande profil.

I portalen blir fältet sluttid nästa starttid för standardprofilen. Du kan inte ange samma tid för slutet av en profil och början av nästa. Portalen tvingar sluttiden att vara en minut före starttiden för följande profil. Under den här minuten blir standardprofilen aktiv. Om du inte vill att standardprofilen ska bli aktiv mellan återkommande profiler lämnar du fältet sluttid tomt.

Dricks

Om du vill konfigurera flera sammanhängande profiler med hjälp av portalen lämnar du sluttiden tom. Den aktuella profilen slutar att användas när nästa profil blir aktiv. Ange bara en sluttid när du vill återgå till standardprofilen. Det går bara att skapa en återkommande profil utan sluttid via portalen och ARM-mallar.

Flera profiler med hjälp av mallar, CLI och PowerShell

När du skapar flera profiler med hjälp av mallar, CLI och PowerShell följer du riktlinjerna nedan.

Se avsnittet autoskalning i resursdefinitionen för ARM-mallen för en fullständig mallreferens.

Det finns ingen specifikation i mallen för sluttiden. En profil förblir aktiv fram till nästa profils starttid.

Lägga till en återkommande profil med ARM-mallar

Exemplet nedan visar hur du skapar två återkommande profiler. En profil för helger från 00:01 på lördag morgon och en andra Weekday-profil som börjar på måndagar klockan 04:00. Det innebär att helgprofilen startar på lördag morgon vid en minut som passerade midnatt och slutar på måndag morgon klockan 04:00. Veckodagprofilen börjar klockan 04.00 på måndag och slutar strax efter midnatt på lördag morgon.

Använd följande kommando för att distribuera mallen: az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json där VMSS1-autoscale.json är filen som innehåller JSON-objektet nedan.

{
    "$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/abc123456-987-f6e5-d43c-9a8d8e7f6541/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/abc123456-987-f6e5-d43c-9a8d8e7f6541/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/abc123456-987-f6e5-d43c-9a8d8e7f6541/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ästa steg