Aracılığıyla paylaş


Ç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çeklendirmesi zengin bir kural kümesini destekler. Ölçüm tabanlı ölçeklendirme (örneğin, CPU kullanımı >%70), zamanlama tabanlı ölçeklendirme (örneğin, yoğun iş saatleri için ölçeklendirme kuralları) veya bir birleşim yapılandırabilirsiniz. Daha fazla bilgi için bkz . Microsoft Azure'da otomatik ölçeklendirmeye genel bakış.

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

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

Önkoşullar

  • Dağıtılan uç nokta. Çevrimiçi uç nokta kullanarak makine öğrenmesi modelini dağıtma ve puanlandırma.
  • Otomatik ölçeklendirmeyi kullanmak için rolün microsoft.insights/autoscalesettings/write otomatik ölçeklendirmeyi yöneten kimliğe atanması gerekir. Bu eyleme izin veren yerleşik veya özel rolleri kullanabilirsiniz. Azure Machine Learning rollerini yönetme hakkında genel yönergeler için bkz . Kullanıcıları ve rolleri yönetme. Azure İzleyici'den otomatik ölçeklendirme ayarları hakkında daha fazla bilgi için bkz . Microsoft.Insights otomatik ölçeklendirme ayarları.

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 ve maksimum kapasiteyi 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

Not

Daha fazla bilgi için otomatik ölçeklendirme için başvuru sayfasına bakın

Dağıtım ölçümlerini kullanarak ölçeği genişletmek için 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ı oluşturursa iki düğüm daha ayırır (en fazla):

Ş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 profilinkiyle name eşleşir). Bağımsız değişkeninin değeri, kuralın condition "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. .

Dağıtım ölçümlerini kullanarak ölçeği daraltmak için bir kural oluşturma

Yük az olduğunda, kuraldaki bir ölçeklendirme 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 ölçeklendirme kuralı oluşturma

Dağıtıma uygulanan önceki kurallar. Şimdi uç noktaya uygulanan 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

Desteklenen Ölçüm Kimliklerini bulma

Otomatik ölçeklendirme kurallarını ayarlamak için koddaki diğer ölçümleri (CLI veya SDK) kullanmak istiyorsanız Kullanılabilir ölçümler'deki tabloya bakın.

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

Ayrıca, yalnızca belirli günlerde veya belirli zamanlarda geçerli olan kurallar 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"

Otomatik ölçeklendirmeyi etkinleştirme veya devre dışı bırakma

Belirli otomatik ölçeklendirme profilini etkinleştirebilir veya devre dışı bırakabilirsiniz.

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

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

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: