Az automatikus skálázás automatikusan a megfelelő mennyiségű erőforrást futtatja az alkalmazásra háruló terhelés kezeléséhez. Az online végpontok támogatják az automatikus skálázást az Azure Monitor automatikus skálázási funkciójával való integráció révén.
Az Azure Monitor automatikus skálázása számos szabályt támogat. Konfigurálhat metrikaalapú skálázást (például 70%-os processzorkihasználtságot >), ütemezésalapú skálázást (például csúcsidőre vonatkozó skálázási szabályokat) vagy kombinációt. További információ: Az automatikus skálázás áttekintése a Microsoft Azure-ban.
Az automatikus skálázást jelenleg az Azure CLI, a REST, az ARM vagy a böngészőalapú Azure Portal kezelheti. Más Azure Machine Learning SDK-k, például a Python SDK idővel támogatást nyújtanak.
Az automatikus skálázás használatához a szerepkört microsoft.insights/autoscalesettings/write hozzá kell rendelni az automatikus skálázást kezelő identitáshoz. Bármilyen beépített vagy egyéni szerepkört használhat, amely lehetővé teszi ezt a műveletet. Az Azure Machine Learning szerepköreinek kezelésével kapcsolatos általános útmutatásért lásd: Felhasználók és szerepkörök kezelése. További információ az Azure Monitor automatikus skálázási beállításairól: Microsoft.Insights automatikus skálázási beállítások.
Automatikus skálázási profil meghatározása
Az automatikus skálázás végponthoz való engedélyezéséhez először definiálnia kell egy automatikus skálázási profilt. Ez a profil határozza meg a méretezési csoport alapértelmezett, minimális és maximális kapacitását. Az alábbi példa az alapértelmezett és minimális kapacitást két virtuálisgép-példányként, a maximális kapacitást pedig ötre állítja be:
A következő kódrészlet állítja be a végpont és az üzembe helyezés nevét:
# set your existing endpoint name
ENDPOINT_NAME=your-endpoint-name
DEPLOYMENT_NAME=blue
Ezután kérje le az üzembe helyezés és a végpont Azure Resource Manager-azonosítóját:
# ARM id of the deployment
DEPLOYMENT_RESOURCE_ID=$(az ml online-deployment show -e $ENDPOINT_NAME -n $DEPLOYMENT_NAME -o tsv --query "id")
# ARM id of the deployment. todo: change to --query "id"
ENDPOINT_RESOURCE_ID=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query "properties.\"azureml.onlineendpointid\"")
# set a unique name for autoscale settings for this deployment. The below will append a random number to make the name unique.
AUTOSCALE_SETTINGS_NAME=autoscale-$ENDPOINT_NAME-$DEPLOYMENT_NAME-`echo $RANDOM`
A következő kódrészlet hozza létre az automatikus skálázási profilt:
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
from azure.mgmt.monitor import MonitorManagementClient
from azure.mgmt.monitor.models import AutoscaleProfile, ScaleRule, MetricTrigger, ScaleAction, Recurrence, RecurrentSchedule
import random
import datetime
Változók definiálása a munkaterülethez, a végponthoz és az üzembe helyezéshez:
# Set a unique name for autoscale settings for this deployment. The below will append a random number to make the name unique.
autoscale_settings_name = f"autoscale-{endpoint_name}-{deployment_name}-{random.randint(0,1000)}"
mon_client.autoscale_settings.create_or_update(
resource_group,
autoscale_settings_name,
parameters = {
"location" : endpoint.location,
"target_resource_uri" : deployment.id,
"profiles" : [
AutoscaleProfile(
name="my-scale-settings",
capacity={
"minimum" : 2,
"maximum" : 5,
"default" : 2
},
rules = []
)
]
}
)
A Azure Machine Learning stúdió válassza ki a munkaterületet, majd a lap bal oldalán válassza a Végpontok lehetőséget. A végpontok listázása után válassza ki a konfigurálni kívánt végpontot.
A végpont Részletek lapján válassza az Automatikus skálázás konfigurálása lehetőséget.
Az Erőforrások méretezésének kiválasztása területen válassza az Egyéni automatikus skálázás lehetőséget a konfiguráció megkezdéséhez. Az alapértelmezett skálázási feltételhez használja a következő értékeket:
Skálázási mód beállítása Skálázás metrika alapján.
Állítsa a Minimum értékét 2-re.
Állítsa a Maximumértékét 5-re.
Állítsa az Alapértelmezett értéket 2-re.
Szabály létrehozása metrikák használatával történő felskálázáshoz
Gyakori horizontális felskálázási szabály az, amely növeli a virtuálisgép-példányok számát, ha az átlagos processzorterhelés magas. Az alábbi példa két további csomópontot foglal le (a maximális értékig), ha a CPU átlagos terhelése öt percen keresztül meghaladja a 70%-ot:
az monitor autoscale rule create \
--autoscale-name $AUTOSCALE_SETTINGS_NAME \
--condition "CpuUtilizationPercentage > 70 avg 5m" \
--scale out 2
A szabály a my-scale-settings profil része (autoscale-name megegyezik a name profillal). Az argumentum értéke condition szerint a szabálynak akkor kell aktiválnia, ha "A virtuálisgép-példányok átlagos processzorhasználata öt percig meghaladja a 70%-ot." Ha ez a feltétel teljesül, két további virtuálisgép-példány lesz lefoglalva.
Megjegyzés
A parancssori felület szintaxisával kapcsolatos további információkért lásd: az monitor autoscale.
Ez a szabály a és argumentumok metric_nametime_windowtime_aggregationutolsó 5 perces átlagára CPUUtilizationpercentage vonatkozik. Ha a metrika értéke nagyobb, mint a threshold 70, két további virtuálisgép-példány lesz lefoglalva.
Frissítse a profilt my-scale-settings úgy, hogy tartalmazza ezt a szabályt:
A Szabályok szakaszban válassza a Szabály hozzáadása lehetőséget. Megjelenik a Skálázási szabály lap. A lap mezőinek feltöltéséhez használja az alábbi információkat:
Állítsa a metrika nevéta CPU-kihasználtság százalékos értékére.
Állítsa az Operátor értékét a Nagyobb mint értékre , és állítsa a Metrika küszöbértékét70-re.
Állítsa az Időtartam (perc) értékét 5-re. Hagyja az Időfelbontási statisztikaértékét Átlag értéken.
Állítsa a Művelet értékét a Darabszám növelése értékre , és állítsa a Példányszámértékét 2-re.
Végül válassza a Hozzáadás gombot a szabály létrehozásához.
Szabály létrehozása a metrikák használatával történő méretezéshez
Ha a terhelés könnyű, a szabály skálázása csökkentheti a virtuálisgép-példányok számát. Az alábbi példa egyetlen csomópontot ad ki, legalább 2-ig, ha a cpu-terhelés 5 percig kevesebb, mint 30%:
A Szabályok szakaszban válassza a Szabály hozzáadása lehetőséget. Megjelenik a Skálázási szabály lap. A lap mezőinek feltöltéséhez használja az alábbi információkat:
Állítsa a metrika nevéta CPU-kihasználtság százalékos értékére.
Állítsa az Operátor értékét Kisebb, mint értékre , a Metrika küszöbértékétpedig 30-ra.
Állítsa az Időtartam (perc)értékét 5-re.
Állítsa a Művelet értékét a Darabszám csökkentése értékre , és állítsa a Példányszámértékét 1-re.
Végül válassza a Hozzáadás gombot a szabály létrehozásához.
Ha a felskálázás és a skálázás szabályai is vannak, a szabályok az alábbi képernyőképhez hasonlóan fognak kinézni. Azt adta meg, hogy ha az átlagos processzorterhelés 5 percig meghaladja a 70%-ot, 2 további csomópontot kell lefoglalni, az 5-ös korlátig. Ha a CPU-terhelés 5 percig kevesebb, mint 30%, egyetlen csomópontot kell felszabadítani, a minimum 2-ig.
Skálázási szabály létrehozása végpontmetrikák alapján
Az üzembe helyezésre alkalmazott előző szabályok. Most adjon hozzá egy, a végpontra vonatkozó szabályt. Ebben a példában, ha a kérés késése 5 percig átlagosan 70 ezredmásodpercnél nagyobb, foglaljon le egy másik csomópontot.
A lap alján válassza a + Méretezési feltétel hozzáadása lehetőséget.
Válassza a Skálázás metrika alapján lehetőséget, majd válassza a Szabály hozzáadása lehetőséget. Megjelenik a Skálázási szabály lap. A lap mezőinek feltöltéséhez használja az alábbi információkat:
Állítsa a Metrikaforrás értékét Az egyéb erőforrás értékre.
Állítsa az erőforrástípusta Machine Learning online végpontjaira.
Állítsa be az Erőforrást a végpontra.
Állítsa a Metrika neve beállítást a Késés kérése értékre.
Állítsa az Operátor értékét a Nagyobb mint értékre , és állítsa a Metrika küszöbértékét70-re.
Állítsa az Időtartam (perc)értékét 5-re.
Állítsa a Művelet értékéta Darabszám növelése értékre , és állítsa a Példányszám értékét 1-re
Skálázási szabályok létrehozása ütemezés alapján
Olyan szabályokat is létrehozhat, amelyek csak bizonyos napokon vagy bizonyos időpontokban érvényesek. Ebben a példában a csomópontok száma 2-ra van állítva a hétvégén.
A lap alján válassza a + Méretezési feltétel hozzáadása lehetőséget. Az új skálázási feltételben a következő információk segítségével töltse ki a mezőket:
Válassza a Skálázás adott példányszámra lehetőséget.
Állítsa be a Példányszám értékét 2-re.
Állítsa az Ütemezés beállítást Adott napok ismétlése értékre.
Állítsa az ütemezést minden szombaton és vasárnapismétlődés értékre.
Erőforrások törlése
Ha nem fogja használni az üzemelő példányokat, törölje őket:
# delete the autoscaling profile
az monitor autoscale delete -n "$AUTOSCALE_SETTINGS_NAME"
# delete the endpoint
az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait