Share via


Çevrimiçi uç noktayı otomatik ölçeklendirme

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Otomatik ölçeklendirme uygulamanızdaki yükü işlemek için tam olarak doğru miktarda kaynak çalıştırır. Çevrimiçi uç noktalar , Azure İzleyici otomatik ölçeklendirme özelliğiyle tümleştirme aracılığıyla otomatik ölçeklendirmeyi destekler.

Azure İzleyici otomatik ölçeklendirme, zengin bir kural kümesini destekler. Ölçüm tabanlı ölçeklendirmeyi (örneğin, CPU kullanımı >%70), zamanlama tabanlı ölçeklendirmeyi (örneğin, yoğun iş saatleri için ölçeklendirme kuralları) veya bir bileşimi yapılandırabilirsiniz. Daha fazla bilgi için bkz. Microsoft Azure'da otomatik ölçeklendirmeye genel bakış.

Gerektiğinde örneği otomatik ölçeklendirme, ekleme/kaldırma diyagramı

Bugün Azure CLI, REST, ARM veya tarayıcı tabanlı Azure portal kullanarak otomatik ölçeklendirmeyi yönetebilirsiniz. Python SDK'sı gibi diğer Azure Machine Learning SDK'ları zaman içinde destek ekleyecektir.

Önkoşullar

Otomatik ölçeklendirme profilini tanımlama

Bir uç nokta için otomatik ölçeklendirmeyi etkinleştirmek için önce bir otomatik ölçeklendirme profili tanımlarsınız. Bu profil varsayılan, en düşük ve en yüksek ölçek kümesi kapasitesini tanımlar. Aşağıdaki örnek, varsayılan ve en düşük kapasiteyi iki VM örneği, maksimum kapasiteyi ise beş olarak ayarlar:

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

Aşağıdaki kod parçacığı uç nokta ve dağıtım adlarını ayarlar:

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

Ardından, dağıtımın ve uç noktanın Azure Resource Manager kimliğini alın:

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

Aşağıdaki kod parçacığı otomatik ölçeklendirme profilini oluşturur:

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

Ölçümleri kullanarak ölçeği genişletmek için bir kural oluşturma

Yaygın bir ölçeği genişletme kuralı, ortalama CPU yükü yüksek olduğunda VM örneklerinin sayısını artıran kuraldır. Aşağıdaki örnek, CPU beş dakika boyunca %70'in üzerinde bir yük ortalaması elde ederse iki düğüm daha ayırır (en yüksek değere kadar):

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

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

Kural profilin my-scale-settings bir parçasıdır (autoscale-name profilin değeriyle name eşleşir). Bağımsız değişkeninin condition değeri, kuralın "VM örnekleri arasındaki ortalama CPU tüketimi beş dakika boyunca %70'i aştığında" tetiklenmesi gerektiğini söyler. Bu koşul karşılandığında iki vm örneği daha ayrılır.

Not

CLI söz dizimi hakkında daha fazla bilgi için bkz az monitor autoscale. .

Ölçümleri kullanarak ölçeklendirilecek bir kural oluşturma

Yük az olduğunda, bir ölçeklendirme kuralı VM örneği sayısını azaltabilir. Aşağıdaki örnek, CPU yükü 5 dakika boyunca %30'un altındaysa en az 2'ye kadar olan tek bir düğümü serbest bırakır:

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

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

Uç nokta ölçümlerini temel alan bir ölçeklendirme kuralı oluşturma

Dağıtıma uygulanan önceki kurallar. Şimdi uç nokta için geçerli olan bir kural ekleyin. Bu örnekte, istek gecikme süresi 5 dakika boyunca ortalama 70 milisaniyeden uzunsa başka bir düğüm ayırın.

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

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

Zamanlamaya göre ölçeklendirme kuralları oluşturma

Ayrıca yalnızca belirli günlerde veya belirli zamanlarda geçerli olan kurallar da oluşturabilirsiniz. Bu örnekte düğüm sayısı hafta sonu 2 olarak ayarlanmıştır.

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

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"

Kaynakları silme

Dağıtımlarınızı kullanmayacaksanız bunları silin:

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

# 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

Sonraki adımlar

Azure İzleyici ile otomatik ölçeklendirme hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: