Automatické škálování online koncového bodu

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Azure-ai-ml v2 sady Python SDK (aktuální)

Automatické škálování automaticky spustí správné množství prostředků ke zvládnutí zatížení u vaší aplikace. Online koncové body podporují automatické škálování prostřednictvím integrace s funkcí automatického škálování služby Azure Monitor.

Automatické škálování služby Azure Monitor podporuje bohatou sadu pravidel. Můžete nakonfigurovat škálování na základě metrik (například 70% využití >procesoru), škálování na základě plánu (například pravidla škálování pro pracovní dobu ve špičce) nebo kombinaci. Další informace najdete v tématu Přehled automatického škálování v Microsoft Azure.

Diagram automatického škálování přidávání nebo odebírání instance podle potřeby

V současnosti můžete automatické škálování spravovat pomocí Azure CLI, REST, ARM nebo Azure Portal v prohlížeči. Další sady SDK služby Azure Machine Learning, například Python SDK, budou postupně přidávat podporu.

Požadavky

Definice profilu automatického škálování

Pokud chcete povolit automatické škálování pro koncový bod, nejprve nadefinujte profil automatického škálování. Tento profil definuje výchozí, minimální a maximální kapacitu škálovací sady. Následující příklad nastaví výchozí a minimální kapacitu jako dvě instance virtuálních počítačů a maximální kapacitu jako pět:

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

Následující fragment kódu nastaví názvy koncového bodu a nasazení:

# set your existing endpoint name
ENDPOINT_NAME=your-endpoint-name
DEPLOYMENT_NAME=blue

Dále získejte ID azure Resource Manager nasazení a koncového bodu:

# 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`

Následující fragment kódu vytvoří profil automatického škálování:

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

Vytvoření pravidla pro horizontální navýšení kapacity pomocí metrik

Běžné pravidlo horizontálního navýšení kapacity je pravidlo, které zvyšuje počet instancí virtuálních počítačů, když je průměrné zatížení procesoru vysoké. Následující příklad přidělí další dva uzly (až do maxima), pokud procesor průměrně zatěžuje více než 70 % po dobu pěti minut:

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

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

Pravidlo je součástí my-scale-settings profilu (autoscale-name odpovídá hodnotě name profilu). Hodnota argumentu condition říká, že by se pravidlo mělo aktivovat, když průměrné využití procesoru mezi instancemi virtuálních počítačů překročí 70 % po dobu pěti minut. Po splnění této podmínky se přidělí další dvě instance virtuálních počítačů.

Poznámka

Další informace o syntaxi rozhraní příkazového řádku najdete v tématu az monitor autoscale.

Vytvoření pravidla pro horizontální snížení kapacity pomocí metrik

Pokud je zatížení nízké, pravidlo škálování může snížit počet instancí virtuálních počítačů. Následující příklad uvolní jeden uzel (minimálně na 2), pokud je zatížení procesoru po dobu 5 minut menší než 30 %:

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

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

Vytvoření pravidla škálování na základě metrik koncových bodů

Předchozí pravidla se použila pro nasazení. Teď přidejte pravidlo, které platí pro koncový bod. Pokud je v tomto příkladu latence požadavku větší než průměr 70 milisekund po dobu 5 minut, přidělte další uzel.

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

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

Vytvoření pravidel škálování na základě plánu

Můžete také vytvořit pravidla, která platí jenom v určitých dnech nebo v určitých časech. V tomto příkladu je počet uzlů o víkendu nastavený na 2.

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

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"

Odstranění prostředků

Pokud nasazení nebudete používat, odstraňte je:

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

# 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

Další kroky

Další informace o automatickém škálování pomocí služby Azure Monitor najdete v následujících článcích: