Ismerkedés az automatikus méretezési beállításokkal

Az automatikus méretezési beállítások segítenek biztosítani, hogy a megfelelő mennyiségű erőforrás fusson az alkalmazás ingadozó terhelésének kezeléséhez. Az automatikus skálázási beállításokat úgy konfigurálhatja, hogy a terhelést vagy a teljesítményt jelző metrikák alapján aktiválódjanak, vagy ütemezett dátumon és időpontban aktiválódjanak. Ez a cikk részletesen bemutatja az automatikus méretezési beállítások anatómiáját. A cikk egy beállítás sémájával és tulajdonságaival kezdődik, majd végigvezeti a különböző konfigurálható profiltípusokon. Végül a cikk azt ismerteti, hogy az Azure automatikus skálázási funkciója hogyan értékeli ki, hogy melyik profilt kell végrehajtani egy adott időpontban.

Automatikus méretezési beállításséma

Az automatikus skálázási beállítás sémájának szemléltetéséhez a következő automatikus skálázási beállítást használja a rendszer. Fontos megjegyezni, hogy ez az automatikus skálázási beállítás a következő:

  • Egy profil.
  • Ebben a profilban két metrikaszabály található: egy a vertikális felskálázáshoz, egy pedig a vertikális felskálázáshoz.
    • A horizontális felskálázási szabály akkor aktiválódik, ha a virtuálisgép-méretezési csoport átlagos százalékos CPU-metrikája nagyobb, mint 85 százalék az elmúlt 10 percben.
    • A beskálázási szabály akkor aktiválódik, ha a virtuálisgép-méretezési csoport átlaga kevesebb mint 60 százalék az elmúlt percben.

Megjegyzés

Egy beállítás több profillal is rendelkezhet. További információért tekintse meg a profilok szakaszt. A profilok több felskálázási és vertikális felskálázási szabályt is definiálhatnak. A kiértékelés módjának megtekintéséhez tekintse meg a kiértékelési szakaszt.

{
  "id": "/subscriptions/s1/resourceGroups/rg1/providers/microsoft.insights/autoscalesettings/setting1",
  "name": "setting1",
  "type": "Microsoft.Insights/autoscaleSettings",
  "location": "East US",
  "properties": {
    "enabled": true,
    "targetResourceUri": "/subscriptions/s1/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1",
    "profiles": [
      {
        "name": "mainProfile",
        "capacity": {
          "minimum": "1",
          "maximum": "4",
          "default": "1"
        },
        "rules": [
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricResourceUri": "/subscriptions/s1/resourceGroups/rg1/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/s1/resourceGroups/rg1/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"
            }
          }
        ]
      }
    ]
  }
}
Section Elem neve Leírás
Beállítás ID (Azonosító) Az automatikus méretezési beállítás erőforrás-azonosítója. Az automatikus skálázási beállítások egy Azure Resource Manager-erőforrás.
Beállítás name Az automatikus skálázási beállítás neve.
Beállítás location Az automatikus skálázási beállítás helye. Ez a hely eltérhet a skálázandó erőforrás helyétől.
properties targetResourceUri A skálázandó erőforrás erőforrás-azonosítója. Erőforrásonként csak egy automatikus skálázási beállítással rendelkezhet.
properties Profilok Az automatikus méretezési beállítások egy vagy több profilból állnak. Minden alkalommal, amikor az automatikus skálázási motor fut, egy profilt hajt végre.
profil name A profil neve. Bármilyen nevet kiválaszthat, amely segít azonosítani a profilt.
profil Kapacitás.maximum A maximálisan engedélyezett kapacitás. Ez biztosítja, hogy a profil végrehajtásakor az automatikus skálázás ne skálázza az erőforrást ennél a számnál.
profil Kapacitás.minimum A minimálisan engedélyezett kapacitás. Ez biztosítja, hogy a profil végrehajtásakor az automatikus skálázás ne skálázza az erőforrást e szám alatt.
profil Capacity.default Ha probléma merül fel az erőforrás metrikájának (ebben az esetben a "vmss1" processzorának) olvasása során, és az aktuális kapacitás az alapértelmezett érték alatt van, az automatikus skálázás az alapértelmezettre skálázódik. Ennek célja az erőforrás rendelkezésre állásának biztosítása. Ha az aktuális kapacitás már magasabb az alapértelmezett kapacitásnál, az automatikus skálázás nem lép fel.
profil szabályok Az automatikus skálázás automatikusan skálázódik a maximális és a minimális kapacitás között a profil szabályainak használatával. Egy profilban több szabály is lehet. Általában két szabály létezik: az egyik a vertikális felskálázás időpontjának meghatározása, a másik pedig a méretezés időpontjának meghatározása.
Szabály metricTrigger Meghatározza a szabály metrikafeltételét.
metricTrigger metricName A metrika neve.
metricTrigger metricResourceUri A metrikát kibocsátó erőforrás erőforrás-azonosítója. A legtöbb esetben ugyanaz, mint a skálázandó erőforrás. Bizonyos esetekben eltérő lehet. Skálázhat például egy virtuálisgép-méretezési csoportot a tárolási üzenetsorban lévő üzenetek száma alapján.
metricTrigger timeGrain A metrika mintavételezési időtartama. A TimeGrain = "PT1M" például azt jelenti, hogy a metrikákat 1 percenként kell összesíteni a statisztikai elemben megadott összesítési módszerrel.
metricTrigger Statisztika Az aggregációs módszer a timeGrain időszakon belül. A statisztika = "Átlag" és timeGrain = "PT1M" azt jelenti, hogy a metrikákat 1 percenként kell összesíteni az átlag figyelembevételével. Ez a tulajdonság határozza meg a metrikák mintavételi módját.
metricTrigger timeWindow A metrikák visszakereséséhez szükséges idő. A timeWindow = "PT10M" például azt jelenti, hogy az automatikus skálázás minden futtatásakor az elmúlt 10 percben lekérdezi a metrikákat. Az időkeret lehetővé teszi a metrikák normalizálását, és elkerüli az átmeneti csúcsokra való reagálást.
metricTrigger timeAggregation A mintavételezett metrikák összesítéséhez használt összesítési módszer. Például a TimeAggregation = "Average" függvénynek az átlag alapján összesítenie kell a mintavételezett metrikákat. Az előző esetben vegye ki a tíz 1 perces mintát, és átlaga őket.
Szabály scaleAction A szabály metricTriggerjének aktiválásakor végrehajtandó művelet.
scaleAction irány A vertikális felskálázáshoz a "Növekedés" vagy a "Csökkentés" lehetőséget használhatja a vertikális felskálázáshoz.
scaleAction érték Az erőforrás kapacitásának növelése vagy csökkentése.
scaleAction cooldown A méretezési művelet utáni várakozási idő a skálázás újraméretezése előtt. Ha például a hűtés = "PT10M", az automatikus skálázás nem kísérli meg újra a skálázást további 10 percig. A lehűlés lehetővé teszi, hogy a metrikák stabilizálódjanak a példányok hozzáadása vagy eltávolítása után.

Automatikus méretezési profilok

Az automatikus skálázási profilok háromféle típust különböztetnek meg:

  • Normál profil: A leggyakoribb profil. Ha nem kell a hét napja vagy egy adott nap alapján skáláznia az erőforrást, használhat normál profilt. Ez a profil ezután olyan metrikaszabályokkal konfigurálható, amelyek meghatározzák, hogy mikor és mikor kell vertikálisan felskálázni. Csak egy normál profillal kell rendelkeznie.

    A cikk korábbi részében használt példaprofil egy normál profilra mutat példát. Vegye figyelembe, hogy egy profilt úgy is beállíthat, hogy az erőforrás statikus példányszámára legyen skálázva.

  • Rögzített dátumprofil: Ez a profil speciális esetekhez készült. Tegyük fel például, hogy egy fontos esemény érkezik 2017. december 26-án (PST). Azt szeretné, hogy az erőforrás minimális és maximális kapacitása ugyanazon a napon eltérő legyen, de továbbra is ugyanazon metrikákon legyen skálázva. Ebben az esetben egy rögzített dátumú profilt kell hozzáadnia a beállítás profillistájához. A profil úgy van konfigurálva, hogy csak az esemény napján fusson. Az automatikus skálázás bármely más napon a normál profilt használja.

    "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"
            }
        }
    ]
    
  • Ismétlődési profil: Ez a profiltípus lehetővé teszi annak biztosítását, hogy ezt a profilt mindig a hét egy adott napján használják. Az ismétlődési profiloknak csak kezdési időpontja van. Addig futnak, amíg a következő ismétlődési profil vagy rögzített dátumprofil el nem indul. Az automatikus skálázási beállítás csak egy ismétlődési profillal futtatja ezt a profilt, még akkor is, ha ugyanabban a beállításban van meghatározva egy normál profil. Az alábbi két példa bemutatja a profil használatát:

    1. példa: Hétköznapok és hétvégék

    Tegyük fel, hogy hétvégén a maximális kapacitást 4-nek szeretné beállítani. Hétköznapokon, mivel nagyobb terhelésre számít, azt szeretné, hogy a maximális kapacitás 10 legyen. Ebben az esetben a beállítás két ismétlődési profilt tartalmaz, az egyiket hétvégenként, a másikat pedig hétköznap futtatja. A beállítás a következőképpen néz ki:

    "profiles": [
    {
    "name": "weekdayProfile",
    "capacity": {
        ...
    },
    "rules": [{
        ...
    }],
    "recurrence": {
        "frequency": "Week",
        "schedule": {
            "timeZone": "Pacific Standard Time",
            "days": [
                "Monday"
            ],
            "hours": [
                0
            ],
            "minutes": [
                0
            ]
        }
    }}
    },
    {
    "name": "weekendProfile",
    "capacity": {
        ...
    },
    "rules": [{
        ...
    }]
    "recurrence": {
        "frequency": "Week",
        "schedule": {
            "timeZone": "Pacific Standard Time",
            "days": [
                "Saturday"
            ],
            "hours": [
                0
            ],
            "minutes": [
                0
            ]
        }
    }
    }]
    

    Az előző beállítás azt mutatja, hogy minden ismétlődési profil rendelkezik ütemezéssel. Ez az ütemezés határozza meg, hogy mikor indul el a profil. A profil leáll, ha ideje futtatni egy másik profilt.

    Az előző beállításban például a "weekdayProfile" hétfő 12:00-kor kezdődik. Ez azt jelenti, hogy ez a profil hétfőn 12:00-kor indul. Ez szombat 12:00-ig folytatódik, amikor a "weekendProfile" futásának ütemezése szerint elindul.

    2. példa: Munkaidő

    Tegyük fel, hogy egy metrikaküszöbre van szüksége munkaidőben (9:00 és 17:00 között), és egy másikat minden más alkalommal. A beállítás a következőképpen néz ki:

    "profiles": [
    {
    "name": "businessHoursProfile",
    "capacity": {
        ...
    },
    "rules": [{
        ...
    }],
    "recurrence": {
        "frequency": "Week",
        "schedule": {
            "timeZone": "Pacific Standard Time",
            "days": [
                "Monday", “Tuesday”, “Wednesday”, “Thursday”, “Friday”
            ],
            "hours": [
                9
            ],
            "minutes": [
                0
            ]
        }
    }
    },
    {
    "name": "nonBusinessHoursProfile",
    "capacity": {
        ...
    },
    "rules": [{
        ...
    }]
    "recurrence": {
        "frequency": "Week",
        "schedule": {
            "timeZone": "Pacific Standard Time",
            "days": [
                "Monday", “Tuesday”, “Wednesday”, “Thursday”, “Friday”
            ],
            "hours": [
                17
            ],
            "minutes": [
                0
            ]
        }
    }
    }]
    

    Az előző beállítás azt mutatja, hogy a "businessHoursProfile" hétfőn 9:00-kor kezdődik, és 17:00-kor folytatódik. Ekkor indul el a "nonBusinessHoursProfile" futása. A "nonBusinessHoursProfile" kedd 9:00-ig fut, majd ismét a "businessHoursProfile" veszi át a műveletet. Ez péntek 17:00-ig ismétlődik. Ezen a ponton a "nonBusinessHoursProfile" hétfő 9:00-kor fut le.

Megjegyzés

Az Azure Portal automatikus skálázási felhasználói felülete kikényszeríti az ismétlődési profilok befejezési idejét, és megkezdi az automatikus skálázási beállítás alapértelmezett profiljának futtatását az ismétlődési profilok között.

Automatikus skálázás kiértékelése

Mivel az automatikus skálázási beállítások több profillal is rendelkezhetnek, és minden profil több metrikaszabálysal is rendelkezhet, fontos tisztában lenni az automatikus skálázási beállítások kiértékelésének módjával. Minden alkalommal, amikor az automatikus skálázási feladat fut, a megfelelő profil kiválasztásával kezdődik. Ezután az automatikus skálázás kiértékeli a minimális és maximális értékeket, valamint a profil bármely metrikaszabályát, és eldönti, hogy szükség van-e skálázási műveletre.

Melyik profilt választja az automatikus skálázás?

Az automatikus skálázás a következő sorrendben választja ki a profilt:

  1. Először megkeresi azokat a rögzített dátumprofilokat, amelyek most való futtatásra vannak konfigurálva. Ha van ilyen, az automatikus skálázás futtatja. Ha több rögzített dátumprofilt kell futtatnia, az automatikus skálázás az elsőt választja ki.
  2. Ha nincsenek rögzített dátumprofilok, az automatikus skálázás az ismétlődési profilokat vizsgálja. Ha ismétlődési profilt talál, futtatja azt.
  3. Ha nincsenek rögzített dátum- vagy ismétlődési profilok, az automatikus skálázás a normál profilt futtatja.

Hogyan értékeli ki az automatikus skálázás több szabályt?

Miután az automatikus skálázás meghatározza, hogy melyik profilt kell futtatni, kiértékeli a profilban található összes felskálázási szabályt (ezek a szabályok iránya = "Növekedés").

Ha egy vagy több horizontális felskálázási szabály aktiválódik, az automatikus skálázás kiszámítja az egyes szabályok scaleAction által meghatározott új kapacitást. Ezután a szolgáltatás rendelkezésre állásának biztosítása érdekében a kapacitások maximális értékére skálázható fel.

Tegyük fel például, hogy van egy virtuálisgép-méretezési csoport, amelynek jelenlegi kapacitása 10. Két felskálázási szabály létezik: az egyik 10 százalékkal növeli a kapacitást, a másik pedig 3-tal növeli a kapacitást. Az első szabály 11 új kapacitást eredményezne, a második szabály pedig 13 kapacitást eredményezne. A szolgáltatás rendelkezésre állásának biztosítása érdekében az automatikus skálázás kiválasztja azt a műveletet, amely a maximális kapacitást eredményezi, ezért a második szabályt kell választani.

Ha nem aktiválódnak horizontális felskálázási szabályok, az automatikus skálázás kiértékeli az összes horizontális felskálázási szabályt ( a szabályok iránya = "Csökkenés"). Az automatikus skálázás csak akkor hajt végre horizontális felskálázási műveletet, ha az összes méretezési szabály aktiválódik.

Az automatikus skálázás kiszámítja az egyes szabályok scaleAction által meghatározott új kapacitást. Ezután kiválasztja azt a méretezési műveletet, amely a maximális kapacitást eredményezi a szolgáltatás rendelkezésre állásának biztosítása érdekében.

Tegyük fel például, hogy van egy virtuálisgép-méretezési csoport, amelynek jelenlegi kapacitása 10. Két felskálázási szabály létezik: az egyik 50 százalékkal csökkenti a kapacitást, a másik pedig 3-tal csökkenti a kapacitást. Az első szabály 5 új kapacitást eredményezne, a második szabály pedig 7 kapacitást eredményezne. A szolgáltatás rendelkezésre állásának biztosítása érdekében az automatikus skálázás kiválasztja azt a műveletet, amely a maximális kapacitást eredményezi, ezért a második szabályt kell választani.

Következő lépések

Az automatikus skálázással kapcsolatos további információkért tekintse meg az alábbiakat: