Yönetilen çevrimiçi uç noktayı otomatik ölçeklendirme (önizleme)

Otomatik ölçeklendirme, uygulama üzerindeki yükü işlemek için doğru kaynak miktarını otomatik olarak çalıştırır. Yönetilen uç noktalar, otomatik ölçeklendirme özelliğiyle tümleştirme yoluyla Azure İzleyici ölçeklendirmeyi destekler.

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

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

Bugün, Azure CLI, REST, ARM veya tarayıcı tabanlı web tarayıcısını kullanarak otomatik ölçeklendirmeyi Azure portal. Python SDK ML diğer Azure SDK'ları zaman içinde destek ekler.

Önemli

Bu özellik şu anda genel önizlemededir. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Ö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ımlayın. 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:

Aşağıdaki kod parçacığı uç noktayı 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 Azure Resource Manager uç noktanın kimlik bilgilerini girin:

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

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 başvuru sayfasına bakın

Ölçümleri kullanarak ölçeğin ölçeğini ölçeklendirmek için kural oluşturma

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

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

Kural, profilin bir my-scale-settings parçasıdır ( autoscale-name profilin name kuralıyla eşler). Bağımsız değişkeninin değeri, "SANAL makine örnekleri arasındaki ortalama CPU tüketimi beş dakika boyunca condition %70'i aştı" olduğunda kuralın tetiklemesi gerektiğini söylüyor. Bu koşul karşılanırsa, iki sanal makine ö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çeği ölçeklendirmek için kural oluşturma

Yük hafif olduğunda, bir ölçekleme kuralı SANAL makine örneği sayısını azaltır. Aşağıdaki örnek, CPU yükü 5 dakika için %30'dan azsa en az 2'ye kadar tek bir düğümü serbest bırakacak:

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 için ortalama 70 milisaniyeden büyükse başka bir düğüm ayırabilirsiniz.

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

Bir zamanlamayı temel alarak ölçeklendirme kuralları oluşturma

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

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ı kullanasanız da silebilirsiniz:

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

Sonraki adımlar

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