Menskalakan titik akhir online secara otomatis

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)

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.

Diagram untuk instans penambahan/penghapusan skala otomatis sesuai kebutuhan

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.

Prasyarat

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:

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)

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`

Cuplikan berikut membuat profil skala otomatis:

az monitor autoscale create \
  --name $AUTOSCALE_SETTINGS_NAME \
  --resource $DEPLOYMENT_RESOURCE_ID \
  --min-count 2 --max-count 5 --count 2

Catatan

Untuk selengkapnya, lihat halaman referensi untuk skala otomatis

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::

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)

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.

Catatan

Untuk informasi selengkapnya tentang sintaks CLI, lihat az monitor autoscale.

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:

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)

az monitor autoscale rule create \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --condition "CpuUtilizationPercentage < 25 avg 5m" \
  --scale in 1

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.

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)

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

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.

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)

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"

Hapus sumber daya

Jika Anda tidak akan menggunakan penyebaran, hapus:

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)

# 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

Langkah berikutnya

Untuk mempelajari selengkapnya tentang skala otomatis dengan Azure Monitor, lihat artikel berikut ini: