Delen via


Online-eindpunten automatisch schalen in Azure Machine Learning

VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

In dit artikel leert u hoe u het resourcegebruik in een implementatie beheert door automatisch schalen te configureren op basis van metrische gegevens en planningen. Met het proces voor automatisch schalen kunt u automatisch de juiste hoeveelheid resources uitvoeren om de belasting van uw toepassing te verwerken. Online-eindpunten in Azure Machine Learning ondersteunen automatisch schalen via integratie met de functie voor automatisch schalen in Azure Monitor.

Met automatische schaalaanpassing van Azure Monitor kunt u regels instellen waarmee een of meer acties voor automatisch schalen worden geactiveerd wanneer aan de voorwaarden van de regels wordt voldaan. U kunt schaalaanpassing op basis van metrische gegevens (zoals CPU-gebruik groter dan 70%), op planning gebaseerde schaalaanpassing (zoals schaalregels voor piekuren) of een combinatie van de twee configureren. Zie Overzicht van automatische schaalaanpassing in Microsoft Azure voor meer informatie.

Diagram waarin wordt getoond hoe exemplaren met automatische schaalaanpassing worden toegevoegd en verwijderd, indien nodig.

U kunt op dit moment automatisch schalen beheren met behulp van de Azure CLI, de REST API's, Azure Resource Manager, de Python-SDK of de azure-portal op basis van de browser.

Vereisten

Profiel voor automatisch schalen definiëren

Als u automatische schaalaanpassing wilt inschakelen voor een online-eindpunt, definieert u eerst een profiel voor automatisch schalen. Het profiel geeft de standaard-, minimale en maximale capaciteit van de schaalset op. In het volgende voorbeeld ziet u hoe u het aantal VM-exemplaren (virtuele machines) instelt voor de standaard-, minimale en maximale schaalcapaciteit.

VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)

Als u de standaardinstellingen voor de Azure CLI nog niet hebt ingesteld, slaat u de standaardinstellingen op. Voer deze code uit om te voorkomen dat de waarden voor uw abonnement, werkruimte en resourcegroep meerdere keren worden doorgegeven:

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
  1. Stel de namen van het eindpunt en de implementatie in:

    # set your existing endpoint name
    ENDPOINT_NAME=your-endpoint-name
    DEPLOYMENT_NAME=blue
    
  2. Haal de Azure Resource Manager-id van de implementatie en het eindpunt op:

    # 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. Maak het profiel voor automatische schaalaanpassing:

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

Notitie

Zie de naslaginformatie az monitor autoscale voor meer informatie.

Regel voor uitschalen maken op basis van metrische implementatiegegevens

Een algemene uitschaalregel is het verhogen van het aantal VM-exemplaren wanneer de gemiddelde CPU-belasting hoog is. In het volgende voorbeeld ziet u hoe u twee knooppunten (maximaal het maximum) toewijst als de gemiddelde CPU-belasting gedurende 5 minuten groter is dan 70%:

VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)

az monitor autoscale rule create \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --condition "CpuUtilizationPercentage > 70 avg 5m" \
  --scale out 2

De regel maakt deel uit van het my-scale-settings profiel, waarbij autoscale-name het gedeelte van het profiel overeenkomt name . De waarde van het regelargument condition geeft aan dat de regel wordt geactiveerd wanneer 'Het gemiddelde CPU-verbruik tussen de VM-exemplaren langer is dan 70% gedurende 5 minuten'. Wanneer aan de voorwaarde wordt voldaan, worden er nog twee VM-exemplaren toegewezen.

Notitie

Zie de naslaginformatie over az monitor autoscale Azure CLI syntaxis voor meer informatie.

Een inschaalregel maken op basis van metrische implementatiegegevens

Wanneer de gemiddelde CPU-belasting licht is, kan een regel voor inschalen het aantal VM-exemplaren verminderen. In het volgende voorbeeld ziet u hoe u één knooppunt kunt vrijgeven tot een minimum van twee, als de CPU-belasting gedurende vijf minuten minder dan 30% is.

VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)

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

Een schaalregel maken op basis van metrische eindpuntgegevens

In de vorige secties hebt u regels gemaakt om in of uit te schalen op basis van metrische implementatiegegevens. U kunt ook een regel maken die van toepassing is op het implementatie-eindpunt. In deze sectie leert u hoe u een ander knooppunt toewijst wanneer de aanvraaglatentie gedurende vijf minuten groter is dan gemiddeld 70 milliseconden.

VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)

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

Id's zoeken voor ondersteunde metrische gegevens

Als u andere metrische gegevens in code wilt gebruiken om regels voor automatisch schalen in te stellen met behulp van de Azure CLI of de SDK, raadpleegt u de tabel in Beschikbare metrische gegevens.

Schaalregel maken op basis van planning

U kunt ook regels maken die alleen op bepaalde dagen of op bepaalde tijdstippen van toepassing zijn. In deze sectie maakt u een regel waarmee het aantal knooppunten wordt ingesteld op 2 in het weekend.

VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)

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"

Automatische schaalaanpassing in- of uitschakelen

U kunt een specifiek profiel voor automatisch schalen in- of uitschakelen.

VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)

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

Resources verwijderen

Als u uw implementaties niet gaat gebruiken, verwijdert u de resources met de volgende stappen.

VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)

# 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