Dalam artikel ini, Anda belajar mengelola penggunaan sumber daya dalam penyebaran dengan mengonfigurasi penskalaan otomatis berdasarkan metrik dan jadwal. Proses skala otomatis memungkinkan Anda secara otomatis menjalankan jumlah sumber daya yang tepat untuk menangani beban pada aplikasi Anda. Titik akhir online di Azure Pembelajaran Mesin mendukung autoscaling melalui integrasi dengan fitur skala otomatis di Azure Monitor.
Skala otomatis Azure Monitor memungkinkan Anda mengatur aturan yang memicu satu atau beberapa tindakan skala otomatis saat kondisi aturan terpenuhi. Anda dapat mengonfigurasi penskalaan berbasis metrik (seperti pemanfaatan CPU lebih besar dari 70%), penskalaan berbasis jadwal (seperti aturan penskalaan untuk jam kerja puncak), atau kombinasi keduanya. Untuk informasi selengkapnya, lihat Gambaran umum skala otomatis di Microsoft Azure.
Saat ini Anda dapat mengelola penskalakan otomatis dengan menggunakan Azure CLI, REST API, Azure Resource Manager, Python SDK, atau portal Azure berbasis browser.
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 Pembelajaran Mesin, lihat Mengelola pengguna dan peran. Untuk informasi selengkapnya tentang pengaturan skala otomatis dari Azure Monitor, lihat Penskalaan otomatis Microsoft.Insights.
Untuk menggunakan Python SDK untuk mengelola layanan Azure Monitor, instal azure-mgmt-monitor paket dengan perintah berikut:
pip install azure-mgmt-monitor
Menentukan profil skala otomatis
Untuk mengaktifkan skala otomatis untuk titik akhir online, Anda terlebih dahulu menentukan profil skala otomatis. Profil menentukan kapasitas set skala default, minimum, dan maksimum. Contoh berikut menunjukkan cara mengatur jumlah instans komputer virtual (VM) untuk kapasitas skala default, minimum, dan maksimum.
Jika belum mengatur default untuk Azure CLI, simpan pengaturan default Anda. Untuk menghindari melewati nilai untuk langganan, ruang kerja, dan grup sumber daya Anda beberapa kali, jalankan kode ini:
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
Atur titik akhir dan nama penyebaran:
# set your existing endpoint name
ENDPOINT_NAME=your-endpoint-name
DEPLOYMENT_NAME=blue
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 following code appends a random number to create a unique name.
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 Pembelajaran Mesin, buka ruang kerja Anda, dan pilih Titik akhir dari menu sebelah kiri.
Dalam daftar titik akhir yang tersedia, pilih titik akhir untuk dikonfigurasi:
Pada tab Detail untuk titik akhir yang dipilih, pilih Konfigurasikan penskalaan otomatis:
Untuk opsi Pilih cara menskalakan sumber daya Anda, pilih Skala otomatis kustom untuk memulai konfigurasi.
Untuk opsi Kondisi skala default, konfigurasikan nilai berikut:
Mode skala: Pilih Skala berdasarkan metrik.
Batas instans>Minimum: Atur nilai ke 2.
Batas instans>Maksimum: Atur nilai ke 5.
Instans>membatasi Default: Atur nilai ke 2.
Biarkan panel konfigurasi terbuka. Di bagian berikutnya, Anda mengonfigurasi pengaturan Aturan .
Membuat aturan peluasan skala berdasarkan metrik penyebaran
Aturan peluasan skala umum adalah meningkatkan jumlah instans VM ketika beban CPU rata-rata tinggi. Contoh berikut menunjukkan cara mengalokasikan dua simpul lagi (hingga maksimum) jika beban rata-rata CPU lebih besar dari 70% selama 5 menit:
az monitor autoscale rule create \
--autoscale-name $AUTOSCALE_SETTINGS_NAME \
--condition "CpuUtilizationPercentage > 70 avg 5m" \
--scale out 2
Aturan adalah bagian my-scale-settings dari profil, di mana autoscale-name cocok dengan name bagian profil. Nilai argumen aturan condition menunjukkan aturan memicu ketika "Konsumsi CPU rata-rata di antara instans VM melebihi 70% selama 5 menit." Ketika kondisi terpenuhi, dua instans VM lagi dialokasikan.
Aturan ini mengacu pada rata-rata 5 menit terakhir dari CPUUtilizationpercentage nilai dari argumen metric_name, , time_windowdan time_aggregation. Ketika nilai metrik lebih besar dari threshold 70, penyebaran mengalokasikan dua instans VM lagi.
Perbarui profil my-scale-settings untuk menyertakan aturan ini:
Pada halaman Aturan skala, konfigurasikan nilai berikut ini:
Nama metrik: Pilih Persentase Pemanfaatan CPU.
Operator: Atur ke Lebih Besar dari.
Ambang batas metrik: Atur nilai ke 70.
Durasi (menit): Atur nilai ke 5.
Statistik butir waktu: Pilih Rata-rata.
Operasi: Pilih Tingkatkan jumlah menurut.
Jumlah instans: Atur nilai ke 2.
Pilih Tambahkan untuk membuat aturan:
Biarkan panel konfigurasi terbuka. Di bagian berikutnya, Anda menyesuaikan pengaturan Aturan .
Membuat aturan penyempurnaan berdasarkan metrik penyebaran
Ketika beban CPU rata-rata ringan, aturan penyempurnaan skala dapat mengurangi jumlah instans VM. Contoh berikut menunjukkan cara merilis satu node hingga minimal dua, jika beban CPU kurang dari 30% selama 5 menit.
Pada halaman Aturan skala, konfigurasikan nilai berikut ini:
Nama metrik: Pilih Persentase Pemanfaatan CPU.
Operator: Atur ke Kurang dari.
Ambang batas metrik: Atur nilai ke 30.
Durasi (menit): Atur nilai ke 5.
Statistik butir waktu: Pilih Rata-rata.
Operasi: Pilih Kurangi jumlah menurut.
Jumlah instans: Atur nilai ke 1.
Pilih Tambahkan untuk membuat aturan:
Jika Anda mengonfigurasi aturan peluasan skala dan penyempurnaan skala, aturan Anda terlihat mirip dengan cuplikan layar berikut. Aturan menentukan bahwa jika beban CPU rata-rata melebihi 70% selama 5 menit, dua simpul lagi harus dialokasikan, hingga batas lima. Jika beban CPU kurang dari 30% selama 5 menit, satu node harus dilepaskan, hingga minimal dua.
Biarkan panel konfigurasi terbuka. Di bagian berikutnya, Anda menentukan pengaturan skala lainnya.
Membuat aturan skala berdasarkan metrik titik akhir
Di bagian sebelumnya, Anda membuat aturan untuk menskalakan masuk atau keluar berdasarkan metrik penyebaran. Anda juga dapat membuat aturan yang berlaku untuk titik akhir penyebaran. Di bagian ini, Anda mempelajari cara mengalokasikan simpul lain ketika latensi permintaan lebih besar dari rata-rata 70 milidetik selama 5 menit.
Langkah-langkah berikut melanjutkan konfigurasi aturan pada halaman Skala otomatis kustom.
Di bagian bawah halaman, pilih tautan Tambahkan kondisi skala.
Pada halaman Kondisi skala, pilih Skalakan berdasarkan metrik, lalu pilih tautan Tambahkan aturan. Halaman Aturan skala terbuka.
Pada halaman Aturan skala, konfigurasikan nilai berikut ini:
Sumber metrik: Pilih Sumber daya lain.
Jenis sumber daya: Pilih Pembelajaran Mesin titik akhir online.
Sumber Daya: Pilih titik akhir Anda.
Nama metrik: Pilih Latensi permintaan.
Operator: Atur ke Lebih Besar dari.
Ambang batas metrik: Atur nilai ke 70.
Durasi (menit): Atur nilai ke 5.
Statistik butir waktu: Pilih Rata-rata.
Operasi: Pilih Tingkatkan jumlah menurut.
Jumlah instans: Atur nilai ke 1.
Pilih Tambahkan untuk membuat aturan:
Menemukan ID untuk metrik yang didukung
Jika Anda ingin menggunakan metrik lain dalam kode untuk menyiapkan aturan skala otomatis dengan menggunakan Azure CLI atau SDK, lihat tabel dalam Metrik yang tersedia.
Membuat aturan skala berdasarkan jadwal
Anda juga dapat membuat aturan yang hanya berlaku pada hari-hari tertentu atau pada waktu-waktu tertentu. Di bagian ini, Anda membuat aturan yang menetapkan jumlah simpul menjadi 2 pada akhir pekan.
Untuk menonaktifkan profil skala otomatis yang digunakan, pilih Skala manual, lalu pilih Simpan.
Untuk mengaktifkan profil skala otomatis, pilih Skala otomatis kustom. Studio mencantumkan semua profil skala otomatis yang dikenali untuk ruang kerja. Pilih profil lalu pilih Simpan untuk diaktifkan.
Menghapus sumber daya
Jika Anda tidak akan menggunakan penyebaran, hapus sumber daya dengan langkah-langkah berikut.
# 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