Az automatikus méretezési beállítások ismertetése
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 teljesítményt jelző metrikák alapján aktiválódjanak, vagy ütemezett időpontban aktiválódjanak.
Ez a cikk az automatikus méretezési beállításokat ismerteti.
Automatikus méretezési beállítás séma
Az alábbi példa egy automatikus skálázási beállítást mutat be az alábbi attribútumokkal:
- Egyetlen alapértelmezett 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 az elmúlt 10 percben meghaladja a 85%-ot.
- A méretezési szabály akkor aktiválódik, ha a virtuálisgép-méretezési csoport átlaga az elmúlt percben kevesebb mint 60%.
Feljegyzés
Egy beállítás több profillal is rendelkezhet. További információkért tekintse meg a profilok szakaszt. A profilok több kiskálázási és vertikálisan 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.
{
"$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"
}
}
]
}
]
}
}
Az alábbi táblázat az előző automatikus méretezési beállítás JSON-jának elemeit ismerteti.
Section | Elem neve | Portál 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 méretezési beállítások egy Azure Resource Manager-erőforrás. | |
Beállítás | név | Az automatikus méretezési beállítás neve. | |
Beállítás | hely | Az automatikus méretezési beállítás helye. Ez a hely eltérhet a skálázandó erőforrás helyétől. | |
tulajdonságok | targetResourceUri | A skálázandó erőforrás erőforrás-azonosítója. Erőforrásonként csak egy automatikus méretezési beállítással rendelkezhet. | |
tulajdonságok | Profilok | Skálázási feltétel | 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. Automatikus méretezési beállításonként legfeljebb 20 profilt konfigurálhat. |
Profilok | név | A profil neve. Bármilyen nevet választhat, amely segít azonosítani a profilt. | |
Profilok | capacity.maximum | Példánykorlátok – Maximális | A maximálisan engedélyezett kapacitás. Biztosítja, hogy az automatikus skálázás ne skálázza az erőforrást ennél a számnál a profil végrehajtásakor. |
Profilok | kapacitás.minimum | Példánykorlátok – Minimum | A minimálisan engedélyezett kapacitás. Biztosítja, hogy az automatikus skálázás ne skálázza az erőforrást e szám alatt a profil végrehajtásakor |
Profilok | capacity.default | Példánykorlátok – Alapértelmezett | Ha probléma merül fel az erőforrásmetrika 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értelmezett értékre skálázódik. Ez a művelet biztosítja az erőforrás rendelkezésre állását. Ha az aktuális kapacitás már magasabb az alapértelmezett kapacitásnál, az automatikus skálázás nem skálázódik be. |
Profilok | szabályok | 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. Legfeljebb 10 egyéni szabály definiálása egy profilban. A szabályok általában párokban vannak definiálva, az egyik a felskálázás időpontjának meghatározására, a másik pedig a skálázás időpontjának meghatározására. |
szabály | metricTrigger | Szabály skálázása | Meghatározza a szabály metrikafeltételét. |
metricTrigger | metricName | Metrika neve | 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 ez más lehet. Skálázhat például egy virtuálisgép-méretezési csoportot a tárolási üzenetsor üzeneteinek száma alapján. | |
metricTrigger | timeGrain | Időszemcse (perc) | 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 | statisztikai | Időfelbontási szint statisztikája | Az aggregációs módszer a timeGrain időszakon belül. Például 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 | Időtartam | A metrikák visszakeresési ideje. 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őablak lehetővé teszi a metrikák normalizálását, és elkerüli az átmeneti csúcsokra való reagálást. |
metricTrigger | timeAggregation | Idő összesítése | A mintául szolgáló metrikák összesítéséhez használt összesítési módszer. A timeAggregation = "Average" például az átlag alapján összesíti a mintául szolgáló metrikákat. Az előző esetben vegye ki a tíz 1 perces mintát, és átlagozza őket. |
szabály | scaleAction | Művelet | A szabály metricTriggerjének aktiválásakor végrehajtandó művelet. |
scaleAction | irány | Művelet | "Növekedés" a vertikális felskálázáshoz, vagy "Csökkentés" a méretezéshez. |
scaleAction | Érték | Példányok száma | Az erőforrás kapacitásának növelése vagy csökkentése. |
scaleAction | cooldown | Lehűlés (perc) | A méretezési művelet utáni várakozási idő a skálázás újraméretezése előtt. A lehűlési időszak egy felskálázási vagy vertikális felskálázási esemény után lép érvénybe. Ha például a lehűlés = "PT10M", az automatikus skálázás nem próbálja meg újra skálázni 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
Automatikus méretezési beállításonként legfeljebb 20 különböző profil definiálása.
Az automatikus skálázási profilok háromféleképpen használhatók:
Alapértelmezett profil: Akkor használja az alapértelmezett profilt, ha nem kell skáláznia az erőforrást egy adott dátum és idő vagy nap alapján. Az alapértelmezett profil akkor fut, ha az aktuális dátumhoz és időponthoz nem tartoznak más vonatkozó profilok. Csak egy alapértelmezett profillal rendelkezhet.
Rögzített dátumú profil: A rögzített dátumú profil egyetlen dátum és idő szempontjából releváns. A rögzített dátumú profillal skálázási szabályokat állíthat be egy adott eseményhez. A profil csak egyszer fut az esemény dátumán és idejében. Az automatikus skálázás minden más esetben az alapértelmezett 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: Az ismétlődési profil a hét egy napjára vagy napjaira vonatkozik. Az ismétlődő profil sémája nem tartalmaz záródátumot. Az ismétlődő profilok dátumának és időpontjának végét az alábbi profil kezdő időpontja határozza meg. Ha a portált az ismétlődő profilok konfigurálására használják, a rendszer automatikusan frissíti az alapértelmezett profilt, hogy az az ismétlődő profilhoz megadott befejezési időpontban kezdődjön. További információ a több profil konfigurálásáról: Automatikus skálázás több profillal
A részleges séma példája egy ismétlődő profilt mutat be. 06:00-kor kezdődik, és szombaton és vasárnap 19:00-kor ér véget. Az alapértelmezett profilt úgy módosítottuk, hogy szombaton és vasárnap 19:00-kor kezdődjön.
{ "$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" } } ] }
Automatikus skálázás kiértékelése
Az automatikus méretezési beállítások több profillal is rendelkezhetnek. Minden profilhoz több szabály is tartozhat. Minden alkalommal, amikor az automatikus skálázási feladat fut, a megfelelő profil kiválasztásával kezdődik. Az automatikus skálázás ezután kiértékeli a minimális és maximális értékeket, a profil bármely metrikaszabályát, és eldönti, hogy szükséges-e skálázási művelet. Az automatikus méretezési feladat az erőforrás típusától függően 30–60 másodpercenként fut. A skálázási művelet után az automatikus skálázási feladat megvárja a lehűlési időszakot, mielőtt újra skálázódik. A lehűlési időszak a vertikális felskálázási és a vertikális felskálázási műveletekre is vonatkozik.
Melyik profilt fogja automatikusan skálázni?
Az automatikus méretezési szolgáltatás minden futtatásakor a profilok kiértékelése a következő sorrendben történik:
- Rögzített dátumú profilok
- Ismétlődő profilok
- Alapértelmezett profil
A rendszer az első megfelelő profilt használja.
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 profil vertikális felskálázási szabályait, vagyis azt, hogy hol az irány = "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ályokhoz megadott scaleAction által meghatározott új kapacitást. Ha egynél több horizontális felskálázási szabály aktiválódik, az automatikus skálázás a legmagasabb megadott kapacitásra skálázódik a szolgáltatás rendelkezésre állásának biztosítása érdekében.
Tegyük fel például, hogy két szabály van: Az 1. szabály három példányra, a 2. szabály pedig ötre skálázza ki a felskálázást. Ha mindkét szabály aktiválódik, az automatikus skálázás öt példányra skálázható fel. Hasonlóképpen, ha az egyik szabály három példánnyal határozza meg a felskálázást, egy másik szabály pedig 15%-kal a vertikális felskálázást, akkor a két példányszám közül a magasabb lesz.
Ha nem aktiválódnak horizontális felskálázási szabályok, az automatikus skálázás kiértékeli a horizontális felskálázási szabályokat, azaz a "Csökkentés" irányú szabályokat. Az automatikus skálázás csak akkor lép fel, 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. A szolgáltatás rendelkezésre állásának biztosítása érdekében az automatikus skálázás a lehető legkisebbre skálázható a megadott maximális kapacitás elérése érdekében. Tegyük fel például, hogy két skálázási szabály, az egyik 50%-kal csökkenti a kapacitást, a másik pedig három példánysal csökkenti a kapacitást. Ha az első szabály öt, a második szabály pedig hét példányt eredményez, az automatikus skálázás hét példányra skálázható.
Minden alkalommal, amikor az automatikus skálázás kiszámítja egy méretezési művelet eredményét, kiértékeli, hogy ez a művelet kivált-e vertikális felskálázási műveletet. Az a forgatókönyv, amikor egy skálázási művelet az ellenkező skálázási műveletet aktiválja, az úgynevezett lesimítás. Az automatikus skálázás késleltetheti a méretezési műveletet, hogy elkerülje a felskálázást, vagy a szabályban megadottnál kisebb számmal skálázható. Az automatikus skálázással kapcsolatos további információkért lásd : Flapping in autoscale.
Következő lépések
További információ az automatikus skálázásról: