Skala otomatis secara otomatis menjalankan jumlah sumber daya yang tepat untuk menangani beban pada aplikasi Anda. Titik akhir online mendukung penyekalaan otomatis melalui integrasi dengan fitur penyekalaan otomatis Azure Monitor.
Penskalaan otomatis Azure Monitor mendukung serangkaian aturan yang kaya. Anda dapat mengonfigurasi penskalaan berbasis metrik (misalnya, pemanfaatan CPU >70%), penskalaan berbasis jadwal (misalnya, aturan penskalaan untuk jam kerja puncak), atau kombinasi. Untuk informasi selengkapnya, lihat Gambaran umum skala otomatis di Microsoft Azure.
Hari ini, Anda dapat mengelola penskalaan otomatis menggunakan Azure CLI, REST, ARM, atau portal Microsoft Azure berbasis browser. SDK Azure Machine Learning lainnya, seperti Python SDK, akan menambahkan dukungan dari waktu ke waktu.
Untuk menggunakan skala otomatis, peran microsoft.insights/autoscalesettings/write harus ditetapkan ke identitas yang mengelola skala otomatis. Anda dapat menggunakan peran bawaan atau kustom apa pun yang memungkinkan tindakan ini. Untuk panduan umum tentang mengelola peran untuk Azure Machine Learning, lihat Mengelola pengguna dan peran. Untuk informasi selengkapnya tentang pengaturan skala otomatis dari Azure Monitor, lihat Penskalaan otomatis Microsoft.Insights.
Menentukan profil skala otomatis
Guna mengaktifkan skala otomatis untuk titik akhir, Anda terlebih dahulu menentukan profil skala otomatis. Profil ini menentukan kapasitas set skala default, minimum, dan maksimum. Contoh berikut mengatur kapasitas default dan minimum sebagai dua instans mesin virtual, dan kapasitas maksimum sebagai lima:
Cuplikan berikut mengatur titik akhir dan nama penyebaran:
# set your existing endpoint name
ENDPOINT_NAME=your-endpoint-name
DEPLOYMENT_NAME=blue
Selanjutnya, dapatkan ID Azure Resource Manager dari penyebaran dan titik akhir:
# 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`
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
Menentukan variabel untuk ruang kerja, titik akhir, dan penyebaran:
# 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 = []
)
]
}
)
Di studio Azure Machine Learning, pilih ruang kerja Anda, lalu pilih Titik akhir dari sisi kiri halaman. Setelah titik akhir tercantum, pilih yang ingin Anda konfigurasikan.
Dari tab Detail untuk titik akhir, pilih Konfigurasikan penskalaan otomatis.
Di bawah Pilih cara menskalakan sumber daya Anda, pilih Skala otomatis kustom untuk memulai konfigurasi. Untuk kondisi skala default, gunakan nilai berikut:
Atur Mode skala ke Skalakan berdasarkan metrik.
Atur Minimum ke 2.
Atur Maksimum ke 5.
Atur Default ke 2.
Buat aturan untuk meluaskaan skala menggunakan metrik
Aturan peluasan skala yang umum adalah aturan yang meningkatkan jumlah instans mesin virtual saat beban CPU rata-rata tinggi. Contoh berikut akan mengalokasikan dua node lagi (hingga maksimum) jika CPU rata-rata memuat lebih dari 70% selama lima menit::
az monitor autoscale rule create \
--autoscale-name $AUTOSCALE_SETTINGS_NAME \
--condition "CpuUtilizationPercentage > 70 avg 5m" \
--scale out 2
Aturan adalah bagian dari profil my-scale-settings (autoscale-name cocok dengan name profil). Nilai argumen condition-nya mengatakan bahwa aturan harus dipicu ketika "Konsumsi CPU rata-rata di antara instans VM melebihi 70% selama lima menit." Ketika kondisi itu terpenuhi, dua instans VM lagi dialokasikan.
Aturan ini merujuk pada rata-rata 5 menit terakhir CPUUtilizationpercentage dari argumen metric_name, time_window, dan time_aggregation. Ketika nilai metrik lebih besar dari threshold 70, dua lagi instans VM akan dialokasikan.
Perbarui profil my-scale-settings untuk menyertakan aturan ini:
Di bagian Aturan, pilih Tambahkan aturan. Halaman Aturan skala ditampilkan. Gunakan informasi berikut untuk mengisi bidang di halaman ini:
Atur Nama metrik ke Persentase Pemanfaatan CPU.
Atur Operator ke Lebih besar dari dan atur Ambang metrik ke 70.
Atur Durasi (menit) ke 5. Biarkan Statistik butir waktu sebagai Rata-rata.
Atur Operasi ke Tingkatkan jumlah sebesar dan atur Jumlah instans ke 2.
Terakhir, pilih tombol Tambahkan untuk membuat aturan.
Buat aturan untuk menskalakan dalam menggunakan metrik
Saat beban ringan, penskalaan dalam aturan dapat mengurangi jumlah instans mesin virtual. Contoh berikut akan melepaskan satu node, turun ke minimum 2, jika beban CPU kurang dari 30% selama 5 menit:
Di bagian Aturan, pilih Tambahkan aturan. Halaman Aturan skala ditampilkan. Gunakan informasi berikut untuk mengisi bidang di halaman ini:
Atur Nama metrik ke Persentase Pemanfaatan CPU.
Atur Operator ke Kurang dari dan Ambang metrik ke 30.
Atur Durasi (menit) ke 5.
Atur Operasi ke Kurangi jumlah sebesar dan atur Jumlah instans ke 1.
Terakhir, pilih tombol Tambahkan untuk membuat aturan.
Jika memiliki aturan peluasan skala dan penyempitan skala, aturan Anda akan terlihat mirip dengan cuplikan layar berikut. Anda telah menentukan bahwa jika beban CPU rata-rata melebihi 70% selama 5 menit, 2 node lagi harus dialokasikan, hingga batas 5. Jika beban CPU kurang dari 30% selama 5 menit, satu node harus dilepaskan, hingga minimum 2.
Buat aturan penskalaan berdasarkan metrik titik akhir
Aturan sebelumnya diterapkan pada penyebaran. Sekarang, tambahkan aturan yang berlaku untuk titik akhir. Dalam contoh ini, jika latensi permintaan lebih besar dari rata-rata 70 milidetik selama 5 menit, alokasikan node lain.
Dari bagian bawah halaman, pilih + Tambahkan kondisi skala.
Pilih Skalakan berdasarkan metrik, lalu pilih Tambahkan aturan. Halaman Aturan skala ditampilkan. Gunakan informasi berikut untuk mengisi bidang di halaman ini:
Atur Sumber metrik ke Sumber daya lainnya.
Atur Jenis sumber daya ke titik akhir online Pembelajaran Mesin.
Atur Sumber Daya ke titik akhir Anda.
Atur Nama metrik ke Latensi permintaan.
Atur Operator ke Lebih besar dari dan atur Ambang metrik ke 70.
Atur Durasi (menit) ke 5.
Atur Operasi ke Tingkatkan jumlah sebesar dan atur Jumlah instans ke 1
Buat aturan penskalaan berdasarkan jadwal
Anda juga dapat membuat aturan yang hanya berlaku pada hari-hari tertentu atau pada waktu-waktu tertentu. Dalam contoh ini, jumlah node diatur ke 2 pada akhir pekan.
# 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