Azure Machine Learning'de çevrimiçi uç noktaları otomatik ölçeklendirme

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

Bu makalede, ölçümlere ve zamanlamalara göre otomatik ölçeklendirmeyi yapılandırarak dağıtımdaki kaynak kullanımını yönetmeyi öğreneceksiniz. Otomatik ölçeklendirme işlemi, uygulamanızdaki yükü işlemek için doğru miktarda kaynağı otomatik olarak çalıştırmanıza olanak tanır. Azure Machine Learning'deki çevrimiçi uç noktalar , Azure İzleyici'deki otomatik ölçeklendirme özelliğiyle tümleştirme aracılığıyla otomatik ölçeklendirmeyi destekler.

Azure İzleyici otomatik ölçeklendirme, kuralların koşulları karşılandığında bir veya daha fazla otomatik ölçeklendirme eylemini tetikleyen kurallar ayarlamanıza olanak tanır. Ölçüm tabanlı ölçeklendirmeyi (CPU kullanımı %70'in üzerinde olması gibi), zaman tabanlı ölçeklendirmeyi (yoğun iş saatleri için ölçeklendirme kuralları gibi) veya ikisinin birleşimini yapılandırabilirsiniz. Daha fazla bilgi için bkz . Microsoft Azure'da otomatik ölçeklendirmeye genel bakış.

Otomatik ölçeklendirmenin gerektiğinde örnekleri nasıl ekleyip kaldırdığını gösteren diyagram.

Şu anda Azure CLI, REST API'leri, Azure Resource Manager, Python SDK'sı veya tarayıcı tabanlı Azure portalını kullanarak otomatik ölçeklendirmeyi yönetebilirsiniz.

Önkoşullar

  • Dağıtılan uç nokta. Daha fazla bilgi için bkz . Ç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ı.

  • Azure İzleyici hizmetini yönetmek üzere Python SDK'sını kullanmak için aşağıdaki komutu kullanarak paketi yükleyin azure-mgmt-monitor :

    pip install azure-mgmt-monitor
    

Otomatik ölçeklendirme profilini tanımlama

Çevrimiçi uç nokta için otomatik ölçeklendirmeyi etkinleştirmek için önce bir otomatik ölçeklendirme profili tanımlarsınız. Profil varsayılan, en düşük ve en yüksek ölçek kümesi kapasitesini belirtir. Aşağıdaki örnekte, varsayılan, en düşük ve en yüksek ölçek kapasitesi için sanal makine (VM) örneklerinin sayısını ayarlama işlemi gösterilmektedir.

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

Azure CLI için varsayılan ayarları henüz ayarlamadıysanız varsayılan ayarlarınızı kaydedin. Aboneliğinizin, çalışma alanınızın ve kaynak grubunuzun değerlerinin birden çok kez geçirilmesini önlemek için şu kodu çalıştırın:

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
  1. Uç nokta ve dağıtım adlarını ayarlayın:

    # set your existing endpoint name
    ENDPOINT_NAME=your-endpoint-name
    DEPLOYMENT_NAME=blue
    
  2. Dağıtım 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`
    
  3. Otomatik ölçeklendirme profilini oluşturun:

    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 az monitor autoscale başvurusuna bakın.

Dağıtım ölçümlerini temel alan ölçek genişletme kuralı oluşturma

Yaygın bir ölçeği genişletme kuralı, ortalama CPU yükü yüksek olduğunda VM örneği sayısını artırmaktır. Aşağıdaki örnekte, CPU ortalama yükü 5 dakika boyunca %70'in üzerindeyse iki düğümün (en fazla) nasıl ayrılacakları gösterilmektedir:

Ş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 ve profilin autoscale-name bölümüyle name eşleşir. Kural condition bağımsız değişkeninin değeri, "VM örnekleri arasındaki ortalama CPU tüketimi 5 dakika boyunca %70'i aştığında" kuralın tetiklediğini gösterir. Koşul karşılandığında iki VM örneği daha ayrılır.

Not

Daha fazla bilgi için az monitor autoscale Azure CLI söz dizimi başvurusuna bakın.

Dağıtım ölçümlerini temel alan ölçek daraltma kuralı oluşturma

Ortalama CPU yükü hafif olduğunda, ölçek daraltma kuralı VM örneği sayısını azaltabilir. Aşağıdaki örnek, CPU yükü 5 dakika boyunca %30'un altındaysa tek bir düğümün en az iki düğüme nasıl bırakılmasını gösterir.

Ş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çek kuralı oluşturma

Önceki bölümlerde dağıtım ölçümlerine göre ölçeği daraltmak veya genişletmek için kurallar oluşturdunuz. Dağıtım uç noktası için geçerli olan bir kural da oluşturabilirsiniz. Bu bölümde, istek gecikme süresi 5 dakika boyunca ortalama 70 milisaniyeden uzun olduğunda başka bir düğümü ayırmayı öğreneceksiniz.

Ş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çümler için kimlikleri bulma

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

Zamanlamaya göre ölçek kuralı oluşturma

Ayrıca, yalnızca belirli günlerde veya belirli zamanlarda geçerli olan kurallar oluşturabilirsiniz. Bu bölümde, hafta sonları düğüm sayısını 2 olarak ayarlayan bir kural oluşturacaksınız.

Ş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 bir 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 aşağıdaki adımları izleyerek kaynakları 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