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ış.
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:
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:
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
from azure.mgmt.monitor import MonitorManagementClient
from azure.mgmt.monitor.models import AutoscaleProfile, ScaleRule, MetricTrigger, ScaleAction, Recurrence, RecurrentSchedule
import random
import datetime
Çalışma alanı, uç nokta ve dağıtım için değişkenleri tanımlayın:
# 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 = f"autoscale-{endpoint_name}-{deployment_name}-{random.randint(0,1000)}"
mon_client.autoscale_settings.create_or_update(
resource_group,
autoscale_settings_name,
parameters = {
"location" : endpoint.location,
"target_resource_uri" : deployment.id,
"profiles" : [
AutoscaleProfile(
name="my-scale-settings",
capacity={
"minimum" : 2,
"maximum" : 5,
"default" : 2
},
rules = []
)
]
}
)
Azure Machine Learning stüdyosu'da çalışma alanınızı seçin ve ardından sayfanın sol tarafından Uç Noktalar'ı seçin. Uç noktalar listelendikten sonra yapılandırmak istediğiniz uç noktayı seçin.
Uç noktanın Ayrıntılar sekmesinden Otomatik ölçeklendirmeyi yapılandır'ı seçin.
Yapılandırmaya başlamak için Kaynaklarınızın nasıl ölçeklendirileceğini seçin'in altında Özel otomatik ölçeklendirme'yi seçin. Varsayılan ölçek koşulu için aşağıdaki değerleri kullanın:
Ölçek modunu ölçüme göre ölçeklendirin olarak ayarlayın.
Minimum değerini 2 olarak ayarlayın.
En Fazla'yı 5 olarak ayarlayın.
Varsayılan'ı 2 olarak ayarlayı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):
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.
Bu kural, ve bağımsız değişkenlerinin CPUUtilizationpercentage son 5 dakikalık ortalamasına başvururmetric_nametime_window.time_aggregation Ölçümün değeri 70'ten threshold büyük olduğunda iki vm örneği daha ayrılır.
my-scale-settings Profili bu kuralı içerecek şekilde güncelleştirin:
Kurallar bölümünde Kural ekle'yi seçin. Ölçek kuralı sayfası görüntülenir. Bu sayfadaki alanları doldurmak için aşağıdaki bilgileri kullanın:
Ölçüm adını CPU Kullanım Yüzdesi olarak ayarlayın.
İşleç değerini Büyüktür olarak ayarlayın ve Ölçüm eşiğini70 olarak ayarlayın.
Süre (dakika) değerini 5 olarak ayarlayın. Zaman dilimi istatistiğini Ortalama olarak bırakın.
İşlemi Sayını artırma ölçütü olarak ayarlayın ve Örnek sayısını 2 olarak ayarlayın.
Son olarak, kuralı oluşturmak için Ekle düğmesini seçin.
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:
Kurallar bölümünde Kural ekle'yi seçin. Ölçek kuralı sayfası görüntülenir. Bu sayfadaki alanları doldurmak için aşağıdaki bilgileri kullanın:
Ölçüm adını CPU Kullanım Yüzdesi olarak ayarlayın.
İşleç değerini Küçüktür ve Ölçüm eşiğini 30 olarak ayarlayın.
Süre (dakika) değerini 5 olarak ayarlayın.
İşlemi sayıyı azaltma ölçütü olarak ayarlayın ve Örnek sayısını 1 olarak ayarlayın.
Son olarak, kuralı oluşturmak için Ekle düğmesini seçin.
Hem ölçeği genişletip hem de kuralların ölçeğini daraltdıysanız, kurallarınız aşağıdaki ekran görüntüsüne benzer olacaktır. Ortalama CPU yükü 5 dakika boyunca %70'i aşarsa 5 sınırına kadar 2 düğüm daha ayrılması gerektiğini belirttiniz. CPU yükü 5 dakika boyunca %30'un altındaysa, en az 2 olan tek bir düğüm serbest bırakılmalıdır.
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.
Sayfanın alt kısmında + Ölçek koşulu ekle'yi seçin.
Ölçüme göre ölçeklendir'i ve ardından Kural ekle'yi seçin. Ölçek kuralı sayfası görüntülenir. Bu sayfadaki alanları doldurmak için aşağıdaki bilgileri kullanın:
Ölçüm kaynağını Diğer kaynak olarak ayarlayın.
Kaynak türünü Machine Learning çevrimiçi uç noktaları olarak ayarlayın.
Kaynağı uç noktanız olarak ayarlayın.
Ölçüm adını İstek gecikmesi olarak ayarlayın.
İşleç değerini büyüktür ve Ölçüm eşiğini 70 olarak ayarlayın.
Süre (dakika) değerini 5 olarak ayarlayın.
İşlemi Sayma ölçütü olarak artırın ve Örnek sayısını 1 olarak ayarlayın
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.
Otomatik ölçeklendirme profilini devre dışı bırakmak için "El ile ölçeklendirme" ve Kaydet'i seçmeniz yeterlidir.
Otomatik ölçeklendirme profilini etkinleştirmek için "Özel otomatik ölçeklendirme" seçeneğini belirlemeniz yeterlidir. Otomatik ölçeklendirme profilini daha önce eklediyseniz, bunları aşağıda görürsünüz. Şimdi kaydet'e tıklayarak etkinleştirebilirsiniz.
# 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
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz. https://aka.ms/ContentUserFeedback.