Vysvětlení nastavení automatického škálování

Nastavení automatického škálování vám pomůže zajistit, že máte spuštěný správný počet prostředků pro zvládnutí proměnlivého zatížení vaší aplikace. Nastavení automatického škálování můžete nakonfigurovat tak, aby se aktivovala na základě metrik, které označují zatížení nebo výkon, nebo aktivované v naplánovaném datu a čase.

Tento článek vysvětluje nastavení automatického škálování.

Schéma nastavení automatického škálování

Následující příklad ukazuje nastavení automatického škálování s těmito atributy:

  • Jeden výchozí profil.
  • Dvě pravidla metrik v tomto profilu: jedno pro horizontální navýšení kapacity a jedno pro horizontální navýšení kapacity.
    • Pravidlo horizontálního navýšení kapacity se aktivuje, když je průměrná procentuální metrika procesoru virtuálních počítačů vyšší než 85 % za posledních 10 minut.
    • Pravidlo horizontálního snížení kapacity se aktivuje, když je průměr škálovací sady virtuálních počítačů za poslední minutu menší než 60 %.

Poznámka:

Nastavení může mít více profilů. Další informace najdete v části Profily . Profil může mít také definovaná několik pravidel horizontálního navýšení kapacity a pravidla škálování na více instancí. Pokud chcete zjistit, jak se vyhodnocují, přečtěte si část vyhodnocení .

{
    "$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": "Auto created default scale condition",
        "capacity": {
          "minimum": "1",
          "maximum": "4",
          "default": "1"
        },
        "rules": [
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT10M",
              "timeAggregation": "Average",
              "operator": "GreaterThan",
              "threshold": 85
            },
            "scaleAction": {
              "direction": "Increase",
              "type": "ChangeCount",
              "value": "1",
              "cooldown": "PT5M"
            }
          },
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT10M",
              "timeAggregation": "Average",
              "operator": "LessThan",
              "threshold": 60
            },
            "scaleAction": {
              "direction": "Decrease",
              "type": "ChangeCount",
              "value": "1",
              "cooldown": "PT5M"
            }
          }
        ]
      }
    ]
  }
}

Následující tabulka popisuje prvky v kódu JSON předchozího nastavení automatického škálování.

Sekce Název prvku Název portálu Popis
Nastavení ID ID prostředku nastavení automatického škálování Nastavení automatického škálování je prostředek Azure Resource Manageru.
Nastavení name Název nastavení automatického škálování
Nastavení location Umístění nastavení automatického škálování Toto umístění se může lišit od umístění škálovaného prostředku.
vlastnosti targetResourceUri ID prostředku škálovaného prostředku. Pro každý prostředek můžete mít jenom jedno nastavení automatického škálování.
vlastnosti profily Podmínka škálování Nastavení automatického škálování se skládá z jednoho nebo více profilů. Pokaždé, když se modul automatického škálování spustí, spustí jeden profil. Nakonfigurujte až 20 profilů na nastavení automatického škálování.
profily name Název profilu. Můžete zvolit libovolný název, který vám pomůže identifikovat profil.
profily capacity.maximum Limity instancí – maximum Maximální povolená kapacita. Zajišťuje, že automatické škálování neškálování vašeho prostředku nad toto číslo při spuštění profilu.
profily capacity.minimum Omezení instancí – minimum Minimální povolená kapacita. Zajišťuje, že automatické škálování neškálování vašeho prostředku pod toto číslo při spuštění profilu.
profily capacity.default Omezení instancí – výchozí Pokud je problém se čtením metriky prostředků a aktuální kapacita je nižší než výchozí, automatické škálování se škáluje na výchozí. Tato akce zajišťuje dostupnost prostředku. Pokud je aktuální kapacita již vyšší než výchozí kapacita, automatické škálování se nesrovná.
profily pravidla Pravidla Automatické škálování automaticky škáluje mezi maximálním a minimálním počtem kapacit pomocí pravidel v profilu. Definujte v profilu až 10 jednotlivých pravidel. Pravidla jsou obvykle definována ve dvojicích, jedna pro určení, kdy se má horizontální navýšení kapacity a druhá určit, kdy se má škálovat.
pravidlo metricTrigger Pravítko měřítka Definuje podmínku metriky pravidla.
metricTrigger metricName Název metriky Název metriky
metricTrigger Identifikátor metricResourceUri ID prostředku prostředku, který generuje metriku. Ve většině případů je to stejné jako škálovaný prostředek. V některých případech se může lišit. Škálovací sadu virtuálních počítačů můžete například škálovat na základě počtu zpráv ve frontě úložiště.
metricTrigger timeGrain Agregační interval (minuty) Doba trvání vzorkování metrik. Například timeGrain = "PT1M" znamená, že metriky by se měly agregovat každých 1 minutu pomocí metody agregace zadané v prvku statistiky.
metricTrigger statistický Statistika agregačního intervalu Metoda agregace v časovém intervalu. Například statistika = "Průměr" a timeGrain = "PT1M" znamená, že metriky by se měly agregovat každých 1 minutu tím, že vezme průměr. Tato vlastnost určuje, jak se metrika vzorkuje.
metricTrigger timeWindow Doba trvání Doba, po kterou se můžete podívat na metriky. Například timeWindow = "PT10M" znamená, že při každém spuštění automatického škálování se dotazuje na metriky za posledních 10 minut. Časové období umožňuje normalizovat metriky a vyhnout se reakcím na přechodné špičky.
metricTrigger timeAggregation Časová agregace Metoda agregace použitá k agregaci ukázkových metrik. Například timeAggregation = "Průměr" by měl agregovat vzorkované metriky tak, že vezme průměr. V předchozím případě vezměte deset 1minutových vzorků a zprůměrujte je.
pravidlo scaleAction Akce Akce, která se má provést při aktivaci metricTrigger pravidla.
scaleAction směr Operace Pokud chcete vertikálně navýšit kapacitu, nebo snížit kapacitu, navýšit kapacitu
scaleAction hodnota Počet instancí Kolik je potřeba zvýšit nebo snížit kapacitu prostředku.
scaleAction cooldown Přestávka (minuty) Doba čekání po operaci škálování před dalším škálováním. Období snížení kapacity se projeví po události horizontálního navýšení kapacity nebo horizontálního navýšení kapacity. Pokud například cooldown = "PT10M", automatické škálování se po dobu dalších 10 minut nepokusí škálovat znovu. Snížením kapacity je umožnit, aby se metriky po přidání nebo odebrání instancí stabilizují.

Profily automatického škálování

Definujte až 20 různých profilů na nastavení automatického škálování.
Existují tři typy profilů automatického škálování:

  • Výchozí profil: Použijte výchozí profil, pokud nepotřebujete škálovat prostředek na základě konkrétního data a času nebo dne v týdnu. Výchozí profil se spustí, pokud pro aktuální datum a čas neexistují žádné další použitelné profily. Můžete mít jenom jeden výchozí profil.

  • Profil s pevným datem: Profil s pevným datem je relevantní pro jedno datum a čas. K nastavení pravidel škálování pro konkrétní událost použijte profil s pevným datem. Profil se spustí jenom jednou v datu a čase události. Ve všech ostatních případech používá automatické škálování výchozí profil.

        ...
        "profiles": [
            {
                "name": " regularProfile",
                "capacity": {
                    ...
                },
                "rules": [
                    ...
                ]
            },
            {
                "name": "eventProfile",
                "capacity": {
                ...
                },
                "rules": [
                    ...
                ],
                "fixedDate": {
                    "timeZone": "Pacific Standard Time",
                    "start": "2017-12-26T00:00:00",
                    "end": "2017-12-26T23:59:00"
                }
            }
        ]
    
  • Profil opakování: Profil opakování se používá pro den nebo sadu dnů v týdnu. Schéma pro opakovaný profil neobsahuje koncové datum. Konec data a času pro opakovaný profil je nastavený počátečním časem následujícího profilu. Pokud se portál používá ke konfiguraci opakovaných profilů, výchozí profil se automaticky aktualizuje tak, aby začínal v koncovém čase, který zadáte pro opakovaný profil. Další informace o konfiguraci více profilů najdete v tématu Automatické škálování s více profily.

    Příklad částečného schématu zde ukazuje opakovaný profil. Začíná v 06:00 a končí v 19:00 v sobotu a neděli. Výchozí profil byl změněn tak, aby začal v sobotu a neděli v 19:00.

        {
            "$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": "Weekend profile",
                                "capacity": {
                                    ...
                                },
                                "rules": [
                                    ...
                                ],
                                "recurrence": {
                                    "frequency": "Week",
                                    "schedule": {
                                        "timeZone": "E. Europe     Standard Time",
                                        "days": [
                                            "Saturday",
                                            "Sunday"
                                        ],
                                        "hours": [
                                            6
                                        ],
                                        "minutes": [
                                            0
                                        ]
                                    }
                                }
                            },
                            {
                                "name": "{\"name\":\"Auto created default scale condition\",\"for\":\"Weekend profile\"}",
                                "capacity": {
                                   ...
                                },
                                "recurrence": {
                                    "frequency": "Week",
                                    "schedule": {
                                        "timeZone": "E. Europe     Standard Time",
                                        "days": [
                                            "Saturday",
                                            "Sunday"
                                        ],
                                        "hours": [
                                            19
                                        ],
                                        "minutes": [
                                            0
                                        ]
                                    }
                                },
                                "rules": [   
                                  ...
                                ]
                            }
                        ],
                        "notifications": [],
                        "targetResourceLocation": "eastus"
                    }
    
                }
            ]
                }
    
    

Vyhodnocení automatického škálování

Nastavení automatického škálování může mít více profilů. Každý profil může mít více pravidel. Pokaždé, když se úloha automatického škálování spustí, začne výběrem příslušného profilu pro danou dobu. Automatické škálování pak vyhodnotí minimální a maximální hodnoty, všechna pravidla metrik v profilu a určí, jestli je potřeba provést akci škálování. Úloha automatického škálování se spouští každých 30 až 60 sekund v závislosti na typu prostředku. Jakmile dojde k akci škálování, úloha automatického škálování čeká na období cooldownu, než se znovu škáluje. Období snížení kapacity se vztahuje jak na akce horizontálního navýšení kapacity, tak na škálování na více instancí.

Jaký profil se použije automatické škálování?

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. Profily s pevným datem
  2. Opakované profily
  3. Výchozí profil

Použije se první vhodný profil, který se najde.

Jak automatické škálování vyhodnocuje více pravidel?

Jakmile automatické škálování určí, který profil se má spustit, vyhodnotí pravidla horizontálního navýšení kapacity v profilu, tj . směr = "Zvýšit". Pokud se aktivuje jedno nebo více pravidel horizontálního navýšení kapacity, automatické škálování vypočítá novou kapacitu určenou akcí škálování určenou pro každé z pravidel. Pokud se aktivuje více než jedno pravidlo horizontálního navýšení kapacity, automatické škálování se škáluje na nejvyšší zadanou kapacitu, aby se zajistila dostupnost služby.

Předpokládejme například, že existují dvě pravidla: Pravidlo 1 určuje horizontální navýšení kapacity podle tří instancí a pravidlo 2 určuje horizontální navýšení kapacity o pět. Pokud se aktivují obě pravidla, automatické škálování horizontálně navyšuje kapacitu o pět instancí. Podobně platí, že pokud jedno pravidlo určuje horizontální navýšení kapacity podle tří instancí a jiné pravidlo určuje horizontální navýšení kapacity o 15 %, použije se vyšší počet dvou instancí.

Pokud se neaktivují žádná pravidla horizontálního navýšení kapacity, automatické škálování vyhodnocuje pravidla horizontálního snížení kapacity, tj. pravidla se směrem = "Snížit". Automatické škálování se škáluje jenom v případě, že se aktivují všechna pravidla škálování.

Automatické škálování vypočítá novou kapacitu určenou akcí škálování každé z těchto pravidel. Pokud chcete zajistit dostupnost služby, automatické škálování se škáluje co nejméně, aby bylo možné dosáhnout maximální zadané kapacity. Předpokládejme například dvě pravidla škálování, jedno, které snižuje kapacitu o 50 % a jedno, které snižuje kapacitu o tři instance. Pokud první pravidlo vede k pěti instancím a druhému pravidlu dojde k sedmi instancím, automatické škálování se škáluje na sedm instancí.

Pokaždé, když automatické škálování vypočítá výsledek akce horizontálního snížení kapacity, vyhodnotí, jestli by tato akce aktivovala akci horizontálního navýšení kapacity. Scénář, ve kterém akce škálování aktivuje opačnou akci škálování, se označuje jako flapping. Automatické škálování může odložit akci horizontálního snížení kapacity, aby se zabránilo flappingu nebo se může škálovat o číslo menší než zadané v pravidle. Další informace o flappingu najdete v tématu Flapping v automatickém škálování.

Další kroky

Další informace o automatickém škálování: