Automatické škálování spravovaného online koncového bodu (Preview)

Automatické škálování automaticky spustí správné množství prostředků pro zvládnutí zatížení vaší aplikace. Spravované koncové body podporují automatické škálování prostřednictvím integrace Azure Monitor funkce automatického škálování.

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

Diagram pro automatické škálování podle potřeby pro přidání nebo odebrání instance

V současné době můžete spravovat automatické škálování pomocí Azure CLI, REST, ARM nebo prohlížeče Azure Portal. Další sady SDK ML Azure, jako je sada Python SDK, budou v průběhu času přidávat podporu.

Důležité

Tato funkce je aktuálně ve verzi Public Preview. Tato verze Preview se poskytuje bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Požadavky

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

Pokud chcete povolit automatické škálování pro koncový bod, musíte nejprve definovat 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 na dvě instance virtuálních počítačů a maximální kapacitu na pět:

Následující fragment kódu nastaví názvy koncových bodů 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-`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

Poznámka

Další informace najdete na referenční stránce automatického škálování.

Vytvoření pravidla pro horizontální navýšení velikosti s využitím metrik

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

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 ( odpovídá profilu autoscale-name name ). Hodnota argumentu říká, že pravidlo by se mělo aktivovat, když "průměrná spotřeba procesoru mezi instancemi virtuálních počítače přesáhne condition 70 % po dobu pěti minut". Když je tato podmínka splněná, přidělí se dvě další instance virtuálních počítače.

Poznámka

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

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

Když je zatížení světlé, může pravidlo horizontálního snížení kapacity snížit počet instancí virtuálních počítače. Následující příklad uvolní jeden uzel minimálně na 2, pokud je zatížení procesoru po dobu 5 minut menší než 30 %:

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 na nasazení. Teď přidejte pravidlo, které se vztahuje na koncový bod. Pokud je v tomto příkladu latence požadavku větší než průměrná hodnota 70 milisekund po dobu 5 minut, přidělte další uzel.

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á se použijí 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 hodnotu 2.

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í používat chystáte, odstraňte je:

az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait

Další kroky

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