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


Online végpontok automatikus méretezése az Azure Machine Learningben

ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

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.

Diagram, amely bemutatja, hogyan adja hozzá és távolítja el az automatikus skálázás a példányokat szükség szerint.

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.

Előfeltételek

  • Üzembe helyezett végpont. További információ: Gépi tanulási modell üzembe helyezése és pontszáma online végpont használatával.

  • 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.

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

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>
  1. 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
    
  2. 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`
    
  3. Hozza létre az automatikus méretezési profilt:

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

Feljegyzés

További információkért lásd az az monitor automatikus skálázási referenciát.

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:

A KÖVETKEZŐRE 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, 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.

Feljegyzés

További információkért tekintse meg az az monitor automatikus skálázási Azure CLI-szintaxisreferenciát.

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%.

A KÖVETKEZŐRE 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

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.

A KÖVETKEZŐRE 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

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.

A KÖVETKEZŐRE 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"

Automatikus skálázás engedélyezése vagy letiltása

Engedélyezheti vagy letilthatja egy adott automatikus skálázási profilt.

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

az monitor autoscale update \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --enabled false

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.

A KÖVETKEZŐRE 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