Online végpont automatikus skálázása

A KÖVETKEZŐKRE VONATKOZIK:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

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.

Diagram a példány szükség szerinti automatikus skálázásához/eltávolításához

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.

Előfeltételek

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ŐKRE VONATKOZIK:Azure CLI ml-bővítmény v2 (aktuális)

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:

az monitor autoscale create \
  --name $AUTOSCALE_SETTINGS_NAME \
  --resource $DEPLOYMENT_RESOURCE_ID \
  --min-count 2 --max-count 5 --count 2

Megjegyzés

További információt az automatikus skálázás referenciaoldalán talál.

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:

A KÖVETKEZŐKRE VONATKOZIK:Azure CLI ml-bővítmény v2 (aktuális)

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.

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 KÖVETKEZŐKRE VONATKOZIK:Azure CLI ml-bővítmény v2 (aktuális)

az monitor autoscale rule create \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --condition "CpuUtilizationPercentage < 25 avg 5m" \
  --scale in 1

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 KÖVETKEZŐKRE VONATKOZIK:Azure CLI ml-bővítmény v2 (aktuális)

az monitor autoscale rule create \
 --autoscale-name $AUTOSCALE_SETTINGS_NAME \
 --condition "RequestLatency > 70 avg 5m" \
 --scale out 1 \
 --resource $ENDPOINT_RESOURCE_ID

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 KÖVETKEZŐKRE VONATKOZIK:Azure CLI ml-bővítmény v2 (aktuális)

az monitor autoscale profile create \
  --name weekend-profile \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --min-count 2 --count 2 --max-count 2 \
  --recurrence week sat sun --timezone "Pacific Standard Time"

Erőforrások törlése

Ha nem fogja használni az üzemelő példányokat, törölje őket:

A KÖVETKEZŐKRE VONATKOZIK:Azure CLI ml-bővítmény v2 (aktuális)

# 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

Következő lépések

Az Azure Monitorral történő automatikus skálázásról az alábbi cikkekben talál további információt: