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.
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.
Als u automatische schaalaanpassing wilt gebruiken, moet de rol microsoft.insights/autoscalesettings/write worden toegewezen aan de identiteit waarmee automatische schaalaanpassing wordt beheerd. U kunt ingebouwde of aangepaste rollen gebruiken die deze actie toestaan. Zie Gebruikers en rollen beheren voor algemene richtlijnen voor het beheren van rollen voor Azure Machine Learning. Zie Microsoft.Insights autoscalesettings voor meer informatie over instellingen voor automatisch schalen van Azure Monitor.
Als u de Python SDK wilt gebruiken om de Azure Monitor-service te beheren, installeert u het azure-mgmt-monitor pakket met de volgende opdracht:
pip install azure-mgmt-monitor
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.
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>
Stel de namen van het eindpunt en de implementatie in:
# set your existing endpoint name
ENDPOINT_NAME=your-endpoint-name
DEPLOYMENT_NAME=blue
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`
Maak het profiel voor automatische schaalaanpassing:
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
Definieer variabelen voor de werkruimte, het eindpunt en de implementatie:
# 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 = []
)
]
}
)
Selecteer in de lijst met beschikbare eindpunten het eindpunt dat u wilt configureren:
Selecteer op het tabblad Details voor het geselecteerde eindpunt de optie Automatisch schalen configureren:
Voor de optie Kiezen hoe u uw resources wilt schalen, selecteert u Aangepaste automatische schaalaanpassing om de configuratie te starten.
Voor de optie Standaardschaalvoorwaarde configureert u de volgende waarden:
Schaalmodus: Selecteer Schalen op basis van een metrische waarde.
Minimum aantal exemplaren>: stel de waarde in op 2.
Maximum aantal exemplaren>: stel de waarde in op 5.
Standaardlimieten voor exemplaren>: stel de waarde in op 2.
Laat het configuratievenster open. In de volgende sectie configureert u de instellingen voor regels .
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%:
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.
Deze regel verwijst naar het gemiddelde van de laatste 5 minuten van de CPUUtilizationpercentage waarde uit de argumenten metric_name, time_windowen time_aggregation. Wanneer de waarde van de metrische waarde groter is dan de threshold 70, wijst de implementatie nog twee VM-exemplaren toe.
Werk het my-scale-settings profiel bij om deze regel op te nemen:
De volgende stappen gaan verder met de configuratie van automatische schaalaanpassing.
Selecteer voor de optie Regels de koppeling Een regel toevoegen. De pagina Regel schalen wordt geopend.
Configureer op de pagina Regel schalen de volgende waarden:
Metrische naam: Selecteer percentage CPU-gebruik.
Operator: Ingesteld op Groter dan.
Drempelwaarde voor metrische gegevens: stel de waarde in op 70.
Duur (minuten): stel de waarde in op 5.
Tijdsintervalstatistiek: Selecteer Gemiddelde.
Bewerking: Selecteer Het aantal verhogen op.
Aantal exemplaren: Stel de waarde in op 2.
Selecteer Toevoegen om de regel te maken:
Laat het configuratievenster open. In de volgende sectie past u de instellingen voor regels aan.
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.
Met de volgende stappen past u de regelsconfiguratie aan ter ondersteuning van een regel voor schalen.
Selecteer voor de optie Regels de koppeling Een regel toevoegen. De pagina Regel schalen wordt geopend.
Configureer op de pagina Regel schalen de volgende waarden:
Metrische naam: Selecteer percentage CPU-gebruik.
Operator: Ingesteld op kleiner dan.
Drempelwaarde voor metrische gegevens: stel de waarde in op 30.
Duur (minuten): stel de waarde in op 5.
Tijdsintervalstatistiek: Selecteer Gemiddelde.
Bewerking: Selecteer Aantal verlagen op.
Aantal exemplaren: Stel de waarde in op 1.
Selecteer Toevoegen om de regel te maken:
Als u zowel uitschaal- als inschaalregels configureert, zien uw regels er ongeveer als volgt uit. De regels geven aan dat als de gemiddelde CPU-belasting gedurende vijf minuten meer dan 70% overschrijdt, er twee knooppunten moeten worden toegewezen, tot aan de limiet van vijf. Als de CPU-belasting gedurende 5 minuten kleiner is dan 30%, moet één knooppunt worden vrijgegeven tot ten minste twee.
Laat het configuratievenster open. In de volgende sectie geeft u andere schaalinstellingen op.
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.
Met de volgende stappen gaat u verder met de regelconfiguratie op de pagina Aangepaste automatische schaalaanpassing .
Selecteer onderaan de pagina de koppeling Een schaalvoorwaarde toevoegen.
Selecteer op de pagina Schaalvoorwaarde Schalen op basis van metrische gegevens en selecteer vervolgens de koppeling Een regeltoevoegen. De pagina Regel schalen wordt geopend.
Configureer op de pagina Regel schalen de volgende waarden:
Metrische bron: Selecteer andere resource.
Resourcetype: Selecteer Online-eindpunten voor Machine Learning.
Resource: Selecteer uw eindpunt.
Naam van metrische waarde: Selecteer latentie van aanvraag.
Operator: Ingesteld op Groter dan.
Drempelwaarde voor metrische gegevens: stel de waarde in op 70.
Duur (minuten): stel de waarde in op 5.
Tijdsintervalstatistiek: Selecteer Gemiddelde.
Bewerking: Selecteer Het aantal verhogen op.
Aantal exemplaren: Stel de waarde in op 1.
Selecteer Toevoegen om de regel te maken:
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.
Met de volgende stappen configureert u de regel met opties op de pagina Aangepaste automatische schaalaanpassing in de studio.
Selecteer onderaan de pagina de koppeling Een schaalvoorwaarde toevoegen.
Selecteer op de pagina Voorwaarde schalen de optie Schalen naar een specifiek aantal exemplaren en selecteer vervolgens de koppeling Een regel toevoegen. De pagina Regel schalen wordt geopend.
Configureer op de pagina Regel schalen de volgende waarden:
Aantal exemplaren: Stel de waarde in op 2.
Planning: Selecteer Specifieke dagen herhalen.
Stel het schemapatroon in: Selecteer Elke en zaterdag en zondag herhalen.
Selecteer Toevoegen om de regel te maken:
Automatische schaalaanpassing in- of uitschakelen
U kunt een specifiek profiel voor automatisch schalen in- of uitschakelen.
Als u een profiel voor automatische schaalaanpassing wilt uitschakelen, selecteert u Handmatig schalen en selecteert u Opslaan.
Als u een profiel voor automatische schaalaanpassing wilt inschakelen, selecteert u Aangepaste automatische schaalaanpassing. De studio bevat alle herkende profielen voor automatische schaalaanpassing voor de werkruimte. Selecteer een profiel en selecteer Opslaan om in te schakelen.
Resources verwijderen
Als u uw implementaties niet gaat gebruiken, verwijdert u de resources met de volgende stappen.
# 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