Ebből a cikkből megtudhatja, hogyan kezelheti az erőforrás-használatot egy üzembe helyezés során az automatikus skálázás metrikák és ütemezések alapján történő konfigurálásával. Az automatikus méretezési folyamat lehetővé teszi a megfelelő mennyiségű erőforrás automatikus futtatását az alkalmazás terhelésének kezeléséhez. Az Azure Machine Learning online végpontjai támogatják az automatikus skálázást az Azure Monitor automatikus skálázási funkciójával való integrációval.
Az Azure Monitor automatikus skálázása lehetővé teszi olyan szabályok beállítását, amelyek egy vagy több automatikus skálázási műveletet aktiválnak a szabályok feltételeinek teljesülése esetén. Metrikaalapú skálázást (például 70%-nál nagyobb processzorkihasználtságot), ütemezésalapú skálázást (például csúcsidőre vonatkozó skálázási szabályokat) vagy a kettő kombinációját konfigurálhatja. 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 API-k, az Azure Resource Manager, a Python SDK vagy a böngészőalapú Azure Portal használatával kezelheti.
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.
Ha a Python SDK-t szeretné használni az Azure Monitor szolgáltatás kezeléséhez, telepítse a csomagot a azure-mgmt-monitor következő paranccsal:
pip install azure-mgmt-monitor
Automatikus méretezési profil definiálása
Az automatikus skálázás online végponthoz való engedélyezéséhez először meg kell adnia egy automatikus skálázási profilt. A profil megadja a méretezési csoport alapértelmezett, minimális és maximális kapacitását. Az alábbi példa bemutatja, hogyan állíthatja be a virtuálisgép-példányok számát az alapértelmezett, minimális és maximális méretezési kapacitáshoz.
Ha még nem állította be az Azure CLI alapértelmezett beállításait, mentse az alapértelmezett beállításokat. Az előfizetés, a munkaterület és az erőforráscsoport értékeinek többszöri átadásának elkerülése érdekében futtassa ezt a kódot:
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
A végpont és az üzembe helyezés nevének beállítása:
# set your existing endpoint name
ENDPOINT_NAME=your-endpoint-name
DEPLOYMENT_NAME=blue
Az üzembe helyezés és a végpont Azure Resource Manager-azonosítójának lekérése:
# 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`
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 following code appends a random number to create a unique name.
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 elérhető végpontok listájában válassza ki a konfigurálni kívánt végpontot:
A kijelölt 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 beállításnál válassza az Egyéni automatikus skálázás lehetőséget a konfiguráció megkezdéséhez.
Az Alapértelmezett méretezési feltétel beállításnál konfigurálja a következő értékeket:
Skálázási mód: Metrika alapján válassza a Méretezés lehetőséget.
A példánykorlátok minimális száma>: Állítsa az értéket 2 értékre.
Példánykorlátok>maximális száma: Állítsa az értéket 5 értékre.
A példánykorlátok>alapértelmezése: Állítsa az értéket 2 értékre.
Hagyja nyitva a konfigurációs panelt. A következő szakaszban konfigurálja a szabályok beállításait.
Kiskálázási szabály létrehozása üzembehelyezési metrikák alapján
Az általános vertikális felskálázási szabály a virtuálisgép-példányok számának növelése, ha az átlagos processzorterhelés magas. Az alábbi példa bemutatja, hogyan foglalhat le két további csomópontot (a maximális értékig), ha a processzor átlagos terhelése 5 perc alatt 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, ahol autoscale-name megegyezik a name profil részével. A szabályargumentum condition értéke akkor jelzi a szabály eseményindítóit, ha "A virtuálisgép-példányok átlagos processzorhasználata 5 percig meghaladja a 70%-ot." Ha a feltétel teljesül, két további virtuálisgép-példány lesz lefoglalva.
Ez a szabály az argumentumok metric_nametime_windowtime_aggregationés a .CPUUtilizationpercentage Ha a metrika értéke nagyobb, mint a threshold 70, az üzembe helyezés két további virtuálisgép-példányt foglal le.
Frissítse a profilt úgy my-scale-settings , hogy tartalmazza ezt a szabályt:
Az alábbi lépések az automatikus skálázási konfigurációval folytatódnak.
A Szabályok beállításnál válassza a Szabály hozzáadása hivatkozást. Megnyílik a Méretezési szabály lap.
A Szabály méretezése lapon konfigurálja a következő értékeket:
Metrika neve: Válassza ki a CPU-kihasználtság százalékos arányát.
Operátor: Nagyobb értékre van állítva.
Metrika küszöbértéke: Állítsa az értéket 70-re.
Időtartam (perc): Állítsa az értéket 5 értékre.
Időfelbontási statisztika: Válassza az Átlag lehetőséget.
Művelet: Válassza a Darabszám növelése lehetőséget.
Példányok száma: Állítsa az értéket 2 értékre.
Válassza a Hozzáadás lehetőséget a szabály létrehozásához:
Hagyja nyitva a konfigurációs panelt. A következő szakaszban módosíthatja a szabályok beállításait.
Méretezési szabály létrehozása üzembehelyezési metrikák alapján
Ha az átlagos processzorterhelés könnyű, a méretezési szabály csökkentheti a virtuálisgép-példányok számát. Az alábbi példa bemutatja, hogyan szabadíthat fel egy csomópontot legalább kettőre, ha a cpu terhelése 5 perc alatt kevesebb, mint 30%.
Az alábbi lépések úgy módosítják a szabályok konfigurációját, hogy támogassák a skálázást a szabályban.
A Szabályok beállításnál válassza a Szabály hozzáadása hivatkozást. Megnyílik a Méretezési szabály lap.
A Szabály méretezése lapon konfigurálja a következő értékeket:
Metrika neve: Válassza ki a CPU-kihasználtság százalékos arányát.
Operátor: Kisebb értékre van állítva.
Metrika küszöbértéke: Állítsa az értéket 30-ra.
Időtartam (perc): Állítsa az értéket 5 értékre.
Időfelbontási statisztika: Válassza az Átlag lehetőséget.
Művelet: Válassza a Darabszám csökkentése elemet.
Példányok száma: Állítsa az értéket 1 értékre.
Válassza a Hozzáadás lehetőséget a szabály létrehozásához:
Ha a felskálázási és a méretezési szabályokat is konfigurálja, a szabályok az alábbi képernyőképhez hasonlóan jelennek meg. A szabályok azt határozzák meg, hogy ha az átlagos processzorterhelés 5 percig meghaladja a 70%-ot, két további csomópontot kell lefoglalni az öthöz. Ha a CPU-terhelés 5 percig kevesebb, mint 30%, egy csomópontot kell felszabadítani, legalább kettőig.
Hagyja nyitva a konfigurációs panelt. A következő szakaszban más méretezési beállításokat is megadhat.
Méretezési szabály létrehozása végpontmetrikák alapján
Az előző szakaszokban olyan szabályokat hozott létre, amelyeket üzembehelyezési metrikák alapján skálázhat be vagy ki. Az üzembehelyezési végpontra vonatkozó szabályt is létrehozhat. Ebben a szakaszban megtudhatja, hogyan foglalhat le egy másik csomópontot, ha a kérés késése meghaladja az átlagos 70 ezredmásodpercet 5 percig.
Az alábbi lépések az Egyéni automatikus skálázás lapon folytatják a szabálykonfigurációt .
A lap alján válassza a Méretezési feltétel hozzáadása hivatkozást.
A Skálázási feltétel lapon válassza a Metrika alapján történő skálázás lehetőséget, majd válassza a Szabály hozzáadása hivatkozást. Megnyílik a Méretezési szabály lap.
A Szabály méretezése lapon konfigurálja a következő értékeket:
Metrikaforrás: Válassza ki az Egyéb erőforrást.
Erőforrás típusa: Válassza ki a Machine Learning online végpontjait.
Erőforrás: Válassza ki a végpontot.
Metrika neve: Válassza ki a kérés késését.
Operátor: Nagyobb értékre van állítva.
Metrika küszöbértéke: Állítsa az értéket 70-re.
Időtartam (perc): Állítsa az értéket 5 értékre.
Időfelbontási statisztika: Válassza az Átlag lehetőséget.
Művelet: Válassza a Darabszám növelése lehetőséget.
Példányok száma: Állítsa az értéket 1 értékre.
Válassza a Hozzáadás lehetőséget a szabály létrehozásához:
Támogatott metrikák azonosítóinak keresése
Ha a kódban más metrikákat szeretne használni az automatikus skálázási szabályok Azure CLI vagy SDK használatával történő beállításához, tekintse meg a táblázatot az Elérhető metrikákban.
Méretezési szabály 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 szakaszban egy szabályt hoz létre, amely a csomópontok számát 2-es értékre állítja a hétvégén.
Az alábbi lépésekkel konfigurálhatja a szabályt a stúdió egyéni automatikus skálázási lapján található beállításokkal.
A lap alján válassza a Méretezési feltétel hozzáadása hivatkozást.
A Feltétel méretezése lapon válassza a Méretezés egy adott példányszámra lehetőséget, majd válassza a Szabály hozzáadása hivatkozást. Megnyílik a Méretezési szabály lap.
A Szabály méretezése lapon konfigurálja a következő értékeket:
Példányok száma: Állítsa az értéket 2 értékre.
Ütemezés: Válassza az Ismétlődő napok lehetőséget.
Az ütemezési minta beállítása: Válassza az Ismétlődés lehetőséget minden szombaton és vasárnap.
Válassza a Hozzáadás lehetőséget a szabály létrehozásához:
Automatikus skálázás engedélyezése vagy letiltása
Engedélyezheti vagy letilthatja egy adott automatikus skálázási profilt.
Ha le szeretné tiltani a használatban lévő automatikus méretezési profilt, válassza a Manuális méretezés lehetőséget, majd válassza a Mentés lehetőséget.
Az automatikus skálázási profil engedélyezéséhez válassza az Egyéni automatikus skálázás lehetőséget. A stúdió felsorolja a munkaterület összes felismert automatikus méretezési profilját. Jelöljön ki egy profilt, majd válassza a Mentés lehetőséget az engedélyezéshez.
Erőforrások törlése
Ha nem fogja használni az üzemelő példányokat, törölje az erőforrásokat az alábbi lépésekkel.
# 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