Automatické škálování s více profily

Škálování prostředků na konkrétní den v týdnu nebo konkrétní datum a čas může snížit náklady a zároveň zajistit kapacitu, kterou potřebujete, když ji potřebujete.

Pomocí několika profilů v automatickém škálování můžete škálovat různými způsoby v různých časech. Pokud například vaše firma o víkendu není aktivní, vytvořte si opakovaný profil pro škálování prostředků v sobotu a neděli. Pokud je černý pátek zaneprázdněný den, vytvořte profil pro automatické horizontální navýšení kapacity prostředků v černém pátek.

Tento článek vysvětluje různé profily v automatickém škálování a jejich použití.

V nastavení automatického škálování můžete mít jeden nebo více profilů.

Existují tři typy profilu:

  • Výchozí profil. Výchozí profil se vytvoří automaticky a není závislý na plánu. Výchozí profil nelze odstranit. Výchozí profil se používá, pokud neexistují žádné jiné profily, které odpovídají aktuálnímu datu a času.
  • Opakované profily. Opakovaný profil je platný pro určitý časový rozsah a opakuje se pro vybrané dny v týdnu.
  • Opravili jsme profily data a času. Profil, který je platný pro časový rozsah k určitému datu.

Při každém spuštění služby automatického škálování se profily vyhodnocují v následujícím pořadí:

  1. Pevné profily kalendářních dat
  2. Opakované profily
  3. Výchozí profil

Pokud nastavení data a času profilu odpovídá aktuálnímu času, automatické škálování použije pravidla a limity kapacity daného profilu. Použije se pouze první použitelný profil.

Následující příklad ukazuje nastavení automatického škálování s výchozím profilem a opakovaným profilem.

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

V předchozím příkladu se v pondělí po 3:00 přestane používat opakovaný profil. Pokud je počet instancí menší než 3, automatické škálování se škáluje na nové minimum ze tří. Automatické škálování nadále používá tento profil a škáluje se na základě procentuálního využití procesoru až do pondělí v 8:00. Ve všech ostatních případech se škálování provede podle výchozího profilu na základě počtu požadavků. Po 8:00 v pondělí se automatické škálování přepne na výchozí profil. Pokud je například počet instancí v době 12, automatické škálování se škáluje na 10, což je maximální povoleno pro výchozí profil.

Více souvislých profilů

Automatické škálování přechodů mezi profily na základě jejich počátečních časů Koncový čas daného profilu je určen počátečním časem následujícího profilu.

Na portálu se pole koncového času stane dalším počátečním časem výchozího profilu. Nemůžete zadat stejný čas pro konec jednoho profilu a začátek dalšího profilu. Portál vynutí, aby koncový čas byl jednu minutu před počátečním časem následujícího profilu. Během této minuty se výchozí profil aktivuje. Pokud nechcete, aby se výchozí profil mezi opakovanými profily stal aktivním, nechejte pole koncového času prázdné.

Tip

Pokud chcete nastavit více souvislých profilů pomocí portálu, ponechte koncový čas prázdný. Aktuální profil se přestane používat, když se další profil aktivuje. Čas ukončení zadejte jenom v případech, kdy se chcete vrátit k výchozímu profilu. Vytvoření opakovaného profilu bez koncového času se podporuje jenom prostřednictvím portálu a šablon ARM.

Více profilů pomocí šablon, rozhraní příkazového řádku a PowerShellu

Při vytváření více profilů pomocí šablon, rozhraní příkazového řádku a PowerShellu postupujte podle následujících pokynů.

Úplný odkaz na šablonu najdete v části automatického škálování definice prostředku šablony ARM.

V šabloně není žádná specifikace pro koncový čas. Profil zůstane aktivní až do času zahájení dalšího profilu.

Přidání opakovaného profilu pomocí šablon ARM

Následující příklad ukazuje, jak vytvořit dva opakované profily. Jeden profil pro víkendy od 00:01 v sobotu ráno a druhý profil v týdnu začíná v pondělí v 04:00. To znamená, že víkendový profil začne v sobotu ráno v minutě před půlnocí a končí v pondělí ráno v 04:00. Profil Pracovní den začne v pondělí v pondělí a končí těsně po půlnoci v sobotu ráno.

K nasazení šablony použijte následující příkaz: az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json kde VMSS1-autoscale.json je soubor obsahující níže uvedený objekt JSON.

{
    "$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"
            }

        }
    ]
}    

Další kroky