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 az automatikus skálázást az Azure Monitor automatikus skálázási funkciójával való integrációval támogatják.
Az Azure Monitor automatikus skálázása számos szabályt támogat. Konfigurálhat metrikákon alapuló skálázást (például 70%-os processzorkihasználtságot >), ütemezésalapú skálázást (például a csúcsidőre vonatkozó skálázási szabályokat) vagy egy kombinációt. További információ: Az automatikus skálázás áttekintése a Microsoft Azure-ban.
Ma az automatikus skálázást az Azure CLI, a REST, az ARM vagy a böngészőalapú Azure Portal használatával 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 engedélyezi 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. Az Azure Monitor automatikus skálázási beállításairól a Microsoft.Insights automatikus méretezési beállításai című témakörben olvashat bővebben.
Automatikus skálázási profil meghatározása
Egy végpont automatikus skálázásának engedélyezéséhez először meg kell határoznia 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 ötként á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`
Az alábbi kódrészlet hozza létre az automatikus méretezé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, végponthoz és ü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 = []
)
]
}
)
Az Azure Machine Learning Studióban 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.
A Konfiguráció megkezdéséhez válassza az Egyéni automatikus skálázás lehetőséget az Erőforrások méretezése csoportban. Az alapértelmezett méretezési feltételhez használja a következő értékeket:
Méretezési módbeállítása metrika alapján skálázásra.
Állítsa a minimumot 2-re.
Állítsa a Maximum 5 értékre.
Állítsa az alapértelmezett értéket 2 értékre.
Szabály létrehozása üzembehelyezési metrikák használatával történő vertikális 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 processzor átlagos terhelése 70%-nál nagyobb öt percig:
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.
Feljegyzés
A parancssori felület szintaxisával kapcsolatos további információkért lásd: az monitor autoscale.
Ez a szabály az argumentumok metric_nameutolsó 5 perces átlagára CPUUtilizationpercentage vonatkozik, time_window és time_aggregation. 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 úgy my-scale-settings , hogy tartalmazza ezt a szabályt:
A Szabályok szakaszban válassza a Szabály hozzáadása lehetőséget. Megjelenik a Méretezési szabály lap. A következő információk segítségével töltse ki a mezőket ezen a lapon:
Állítsa be a metrika nevét a CPU-kihasználtság százalékos értékére.
Állítsa az operátort a Nagyobb értékre, és állítsa a metrika küszöbértékét 70-re.
Állítsa az időtartamot (perc) 5-re. Hagyja meg az időfelbontási statisztikákat átlagként.
Állítsa be a műveletet a darabszám növeléséhez, és állítsa a példányok számá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 üzembehelyezési 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 egy csomópontot bocsát ki legalább 2-es értékre, ha a cpu terhelése 5 percig 30%-nál kisebb:
A Szabályok szakaszban válassza a Szabály hozzáadása lehetőséget. Megjelenik a Méretezési szabály lap. A következő információk segítségével töltse ki a mezőket ezen a lapon:
Állítsa be a metrika nevét a CPU-kihasználtság százalékos értékére.
Állítsa az operátort 30-nál kisebbre, a metrika küszöbértékét pedig 30-ra.
Állítsa az időtartamot (perc) 5-re.
Állítsa be a műveletet a darabszám csökkentése 1 értékre, és állítsa a példányok számát 1 értékre.
Végül válassza a Hozzáadás gombot a szabály létrehozásához.
Ha a szabályok vertikális felskálázása és skálázása is van, a szabályok az alábbi képernyőképhez hasonlóan fognak kinézni. Megadta, hogy ha az átlagos processzorterhelés 5 percig meghaladja a 70%-ot, további 2 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, legalább 2-ig.
Skálázási szabály létrehozása végpontmetrikák alapján
Az üzembe helyezésre alkalmazott korábbi 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 Metrika alapján a Méretezés lehetőséget, majd válassza a Szabály hozzáadása lehetőséget. Megjelenik a Méretezési szabály lap. A következő információk segítségével töltse ki a mezőket ezen a lapon:
Metrikaforrás beállítása Más erőforrásra.
Állítsa be az erőforrástípusta Machine Learning online végpontjaira.
Állítsa be az erőforrást a végpontra.
Állítsa be a metrika nevét késés kérésére.
Állítsa az operátort a Nagyobb értékre, és állítsa a metrika küszöbértékét 70-re.
Állítsa az időtartamot (perc) 5-re.
A művelet beállítása a darabszám növeléséhez és a példányok számának 1 értékre történő beállításához
Támogatott metrikák azonosítóinak megkeresése
Ha más metrikákat szeretne használni a kódban (parancssori felület vagy SDK) az automatikus skálázási szabályok beállításához, tekintse meg a táblázatot az Elérhető metrikákban.
Méretezé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 hétvégén 2-re van állítva.
A lap alján válassza a + Méretezési feltétel hozzáadása lehetőséget. Az új méretezési feltételnél használja a következő információkat a mezők kitöltéséhez:
Válassza a Skálázás egy adott példányszámra lehetőséget.
Állítsa be a Példányszám értékét 2-re.
Állítsa be az ütemezést adott napok ismétlésére.
Állítsa be az ütemezést úgy, hogy mindenszombaton és vasárnap ismétlődjön.
Automatikus skálázás engedélyezése vagy letiltása
Engedélyezheti vagy letilthatja az automatikus skálázási profilokat.
Az automatikus méretezési profil letiltásához egyszerűen válassza a "Manuális méretezés" és a Mentés lehetőséget.
Az automatikus skálázási profil engedélyezéséhez egyszerűen válassza az "Egyéni automatikus skálázás" lehetőséget. Ha korábban már hozzáadta az automatikus skálázási profilt, az alábbiakban láthatja őket. Az engedélyezéshez kattintson a Mentés gombra.
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
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ: https://aka.ms/ContentUserFeedback.
Visszajelzés küldése és megtekintése a következőhöz: