Megosztás a következőn keresztül:


Simítás automatikus skálázásban

Ez a cikk az automatikus skálázást és annak elkerülését ismerteti.

A flapping egy hurokfeltételre utal, amely ellentétes skálázási események sorozatát okozza. A jelölés akkor történik, ha egy skálázási esemény az ellenkező skálázási eseményt aktiválja.

Az automatikus skálázás kiértékeli a függőben lévő méretezési műveletet, hogy megállapítsa, ez okozhat-e skálázást. Az automatikus skálázás kihagyhatja a skálázási műveletet, és a következő futtatáskor újraértékelheti, vagy az automatikus skálázás a megadott számú erőforráspéldánynál kevesebbel skálázható. Az automatikus skálázás kiértékelési folyamata minden alkalommal megtörténik, amikor az automatikus skálázási motor fut, ami az erőforrás típusától függően 30–60 másodpercenként történik.

A megfelelő erőforrások biztosítása érdekében a lehetséges felskálázási események keresése nem történik meg. Az automatikus skálázás csak a skálázási esemény elhalasztását teszi lehetővé, hogy elkerülje a felskálázást.

Tegyük fel például, hogy a következő szabályok érvényesek:

  • Vertikális felskálázás 1 példányra, ha az átlagos processzorhasználat meghaladja az 50%-ot.
  • Skálázás a példányok számának 1 példányra való csökkentésére, ha az átlagos processzorhasználat 30%-nál alacsonyabb.

Ha a használat 56%-os, az alábbi táblázatban egy horizontális felskálázási művelet aktiválódik, amely 56%-os processzorhasználatot eredményez 2 példányban. Ez a méretezési csoport átlagosan 28%-át adja. Mivel 28%-kal kisebb, mint a méretezési küszöbérték, az automatikus skálázásnak vissza kell skáláznia. A méretezés 56%-os processzorhasználatra ad vissza méretezési csoportot, ami horizontális felskálázási műveletet indít el.

Idő Példányok száma CPU-százalék Példányonkénti CPU-százalék Skálázási esemény Eredményként kapott példányok száma
T0 1 56% 56% Horizontális felskálázás 2
T1 2 56% 28% Horizontális leskálázás 1
T2 1 56% 56% Horizontális felskálázás 2
T3 2 56% 28% Horizontális leskálázás 1

Ha nem ellenőrzött maradna, akkor folyamatos skálázási események történnek. Ebben az esetben azonban az automatikus skálázási motor elhalasztja a skálázási eseményt a T1-nél , és újraértékeli a következő automatikus skálázási futtatás során. A felskálázás csak akkor történik meg, ha az átlagos processzorhasználat 30% alatt van.

A lefúvatást gyakran a következők okozzák:

  • A küszöbértékek közötti margók kicsik vagy nincsenek
  • Skálázás több példány szerint
  • Horizontális fel- és leskálázás különböző metrikák használatával

A küszöbértékek közötti margók kicsik vagy nincsenek

A skálázás elkerülése érdekében tartsa meg a megfelelő margókat a skálázási küszöbértékek között.

Az alábbi szabályok például, amelyekben nincs margó a küszöbértékek között, a következő szabályok okoznak fellángolást.

  • Vertikális felskálázás a szálszám >=600 esetén
  • Skálázás a 600-os szálszám < esetén

Képernyőkép az automatikus skálázási szabályokról, amelyek akkor lépnek fel, ha a szálszám nagyobb vagy egyenlő 600-nál, és skálázás 600-nál kisebb szálszám esetén.

Az alábbi táblázat az alábbi automatikus skálázási szabályok lehetséges eredményét mutatja be:

Idő Példányok száma Szálszám Szálszám példányonként Skálázási esemény Eredményként kapott példányok száma
T0 2 1250 625 Horizontális felskálázás 3
T1 3 1250 417 Horizontális leskálázás 2
  • A T0 időpontban két példány 1250 szálat vagy példányonként 625 futófelületet kezel. Az automatikus skálázás három példányra skálázható fel.
  • A vertikális felskálázást követően a T1-nél ugyanaz a 1250 szál van, de három példányban csak 417 szál van példányonként. Egy skálázási esemény aktiválódik.
  • A skálázás előtt az automatikus skálázás kiértékeli, hogy mi történik, ha a skálázási esemény bekövetkezik. Ebben a példában 1250 / 2 = 625, azaz példányonként 625 szál. Az automatikus skálázásnak azonnal újra fel kell skáláznia a skálázás után. Ha a folyamat újra felskálázható, a folyamat ismétlődik, ami a hurok kicsúszásához vezet.
  • A helyzet elkerülése érdekében az automatikus skálázás nem skálázható be. Az automatikus skálázás kihagyja az aktuális skálázási eseményt, és újraértékeli a szabályt a következő végrehajtási ciklusban.

Ebben az esetben úgy tűnik, hogy az automatikus skálázás nem működik, mivel nem történik skálázási esemény. Ellenőrizze az automatikus skálázás beállítási lapján az Előzmény futtatása lapot, és ellenőrizze, hogy van-e skálázás.

Képernyőkép az automatikus skálázás futtatási előzményeit tartalmazó lapról, amelyen a rekordok kicsúsznak.

A küszöbértékek közötti megfelelő margó beállítása elkerüli a fenti forgatókönyvet. Példa:

  • Vertikális felskálázás a szálszám >=600 esetén
  • Skálázás a 400-ás szálszám < esetén

Képernyőkép az automatikus skálázási szabályokról, amelyek akkor lépnek fel, ha a szálszám nagyobb vagy egyenlő 600-nál, és skálázás, ha a szálszám kisebb, mint 400.

Ha a skálázási szál száma 400, a teljes szálszámnak 1200 alá kell csökkennie, mielőtt skálázási esemény történne. Tekintse meg az alábbi táblázatot.

Idő Példányok száma Szálszám Szálszám példányonként Skálázási esemény Eredményként kapott példányok száma
T0 2 1250 625 Horizontális felskálázás 3
T1 3 1250 417 nincs skálázási esemény 3
T2 3 1180 394 skálázás 2
T3 3 1180 590 nincs skálázási esemény 2

Skálázás több példány szerint

Ha egynél több példányban történő skálázáskor nem szeretne ki- vagy beskálázást végezni, előfordulhat, hogy az automatikus skálázás a szabályban megadott példányok számánál kevesebbel skálázható.

Például a következő szabályok okozhatnak kicsúszást:

  • Skálázás 20-ra, ha a kérések száma >=200 példányonként.
  • VAGY ha a PROCESSZOR > 70%-os példányonként.
  • Skálázás 10-rel, ha a kérések száma <=50 példányonként.

Képernyőkép az automatikus skálázás alapértelmezett méretezési feltételéről a példához konfigurált szabályokkal.

Az alábbi táblázat az alábbi automatikus skálázási szabályok lehetséges eredményét mutatja be:

Idő Példányok száma CPU Kérelmek száma Skálázási esemény Eredményként kapott példányok Megjegyzések
T0 30 65% Példányonként 3000 vagy 100. Nincs skálázási esemény 30
T1 30 65 1500 Skálázás 3 példány szerint 27 A 10-gyel történő skálázás 70% fölé emelné a processzorhasználatot, ami horizontális felskálázási eseményhez vezetne.

A T0 időpontban az alkalmazás 30 példánysal, 3000 kérelemszámmal és példányonként 65%-os processzorhasználattal fut.

A T1-ben, amikor a kérések száma 1500 kérelemre vagy példányonként 50 kérelemre csökken, az automatikus skálázás 10-ről 20-ra próbál skálázni. Az automatikus skálázás azonban úgy becsüli, hogy 20 példány processzorterhelése 70% felett lesz, ami vertikális felskálázási eseményt okoz.

Az automatikus skálázás elkerülése érdekében az automatikus skálázási motor 20 fölé becsüli a példányok processzorhasználatát, amíg olyan példányszámot nem talál, amelyben az összes metrika szerepel a megadott küszöbértékekben:

  • Tartsa a processzorhasználatot 70% alatt.
  • Tartsa meg a példányonkénti kérések számát 50 felett.
  • Csökkentse a 30 alatti példányok számát.

Ebben az esetben az automatikus skálázás 3-tal, 30-ról 27 példányra skálázható a szabályok teljesítése érdekében, annak ellenére, hogy a szabály 10-es csökkenést határoz meg. A rendszer naplóüzenetet ír a tevékenységnaplóba egy leírással, amely tartalmazza a vertikális leskálázást, a példányok számának frissítésével, hogy elkerülje a jelölést

Ha az automatikus skálázás nem talál megfelelő számú példányt, akkor kihagyja a skálázást, és a következő ciklus során újraértékeli.

Megjegyzés

Ha az automatikus skálázási motor azt észleli, hogy a példányok célszámára való skálázás miatt a kicsúszás bekövetkezhet, akkor az aktuális szám és a célszám közötti alacsonyabb példányszámra is megpróbál skálázni. Ha a skálázás nem történik meg ezen a tartományon belül, az automatikus skálázás az új célhelyen folytatja a skálázási műveletet.

Naplófájlok

Keresse meg a tevékenységnaplóban a következő lekérdezést:

// Activity log, CategoryValue: Autoscale
// Lists latest Autoscale operations from the activity log, with OperationNameValue =="Microsoft.Insights/AutoscaleSettings/Flapping/Action
AzureActivity
|where CategoryValue =="Autoscale" and OperationNameValue =="Microsoft.Insights/AutoscaleSettings/Flapping/Action"
|sort by TimeGenerated desc 

Az alábbiakban egy példa látható egy tevékenységnapló-rekordra a megjelöléshez:

Képernyőkép egy esemény naplórekordjáról.

{
"eventCategory": "Autoscale",
"eventName": "FlappingOccurred",
"operationId": "ffd31c67-1438-47a5-bee4-1e3a102cf1c2",
"eventProperties": 
    "{"Description":"Scale down will occur with updated instance count to avoid flapping. 
     Resource: '/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/  resourcegroups/ed-rg-001/providers/Microsoft.Web/serverFarms/  ScaleableAppServicePlan'.
     Current instance count: '6', 
     Intended new instance count: '1'.
     Actual new instance count: '4'",
    "ResourceName":"/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/resourcegroups/ed-rg-001/providers/Microsoft.Web/serverFarms/ScaleableAppServicePlan",
    "OldInstancesCount":6,
    "NewInstancesCount":4,
    "ActiveAutoscaleProfile":{"Name":"Auto created scale condition",
    "Capacity":{"Minimum":"1","Maximum":"30","Default":"1"},
    "Rules":[{"MetricTrigger":{"Name":"Requests","Namespace":"microsoft.web/sites","Resource":"/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/ed-rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","ResourceLocation":"West Central US","TimeGrain":"PT1M","Statistic":"Average","TimeWindow":"PT1M","TimeAggregation":"Maximum","Operator":"GreaterThanOrEqual","Threshold":3.0,"Source":"/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/ed-rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","MetricType":"MDM","Dimensions":[],"DividePerInstance":true},"ScaleAction":{"Direction":"Increase","Type":"ChangeCount","Value":"10","Cooldown":"PT1M"}},{"MetricTrigger":{"Name":"Requests","Namespace":"microsoft.web/sites","Resource":"/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/ed-rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","ResourceLocation":"West Central US","TimeGrain":"PT1M","Statistic":"Max","TimeWindow":"PT1M","TimeAggregation":"Maximum","Operator":"LessThan","Threshold":3.0,"Source":"/subscriptions/d1234567-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/ed-rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","MetricType":"MDM","Dimensions":[],"DividePerInstance":true},"ScaleAction":{"Direction":"Decrease","Type":"ChangeCount","Value":"5","Cooldown":"PT1M"}}]}}",
"eventDataId": "b23ae911-55d0-4881-8684-fc74227b2ddb",
"eventSubmissionTimestamp": "2022-09-13T07:20:41.1589076Z",
"resource": "scaleableappserviceplan",
"resourceGroup": "ED-RG-001",
"resourceProviderValue": "MICROSOFT.WEB",
"subscriptionId": "D1234567-9876-A1B2-A2B1-123A567B9F876",
"activityStatusValue": "Succeeded"
}

Következő lépések

Az automatikus skálázással kapcsolatos további információkért tekintse meg a következő erőforrásokat: