Penskalaan otomatis endpoint online di Azure Machine Learning

BERLAKU UNTUK:Ekstensi ML Azure CLI v2 (saat ini)Python SDK Azure-AI-ML v2 (saat ini)

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.

Endpoint online di Azure Machine Learning mendukung penskalaan otomatis melalui integrasi dengan fitur penskalaan otomatis di Azure Monitor. Untuk informasi selengkapnya tentang pengaturan autoscale dari Azure Monitor, lihat Microsoft.Insights autoscalesettings.

Skala otomatis Azure Monitor memungkinkan Anda mengatur aturan yang memicu satu atau beberapa tindakan skala otomatis saat kondisi aturan terpenuhi. Anda dapat mendasarkan penskalaan pada metrik seperti pemanfaatan CPU, jadwal seperti jam kerja puncak, atau kombinasi keduanya. Untuk informasi selengkapnya, lihat Gambaran umum skala otomatis di Microsoft Azure.

Diagram yang menunjukkan cara skala otomatis menambahkan dan menghapus instans sesuai kebutuhan.

Anda dapat mengelola penskalakan otomatis dengan menggunakan REST API, Azure Resource Manager, Azure CLI v2, Python SDK v2, atau portal Microsoft Azure melalui studio Azure Machine Learning.

Prasyarat

  • Ruang kerja Azure Machine Learning dengan endpoint yang disebarkan. Untuk informasi selengkapnya, lihat Menyebarkan dan menilai model pembelajaran mesin dengan menggunakan titik akhir online.
  • Paket Python SDK azure-mgmt-monitor diinstal dengan menggunakan pip install azure-mgmt-monitor.
  • Izin microsoft.insights/autoscalesettings/write yang ditetapkan ke identitas yang mengelola penskalaan otomatis, melalui peran bawaan atau kustom apa pun yang memungkinkan tindakan ini. Untuk informasi selengkapnya, lihat Mengelola pengguna dan peran.

Menentukan profil skala otomatis

Untuk menerapkan skala otomatis untuk titik akhir online, Anda mengaktifkan pengaturan skala otomatis lalu menentukan profil skala otomatis default yang menentukan kapasitas set skala minimum, maksimum, dan default. Prosedur berikut memungkinkan penskalaan otomatis dan mengatur jumlah instans komputer virtual (VM) untuk kapasitas skala minimum, maksimum, dan default.

  1. Jika Anda belum mengatur default untuk Azure CLI, jalankan perintah berikut untuk menghindari penetapan nilai berulang kali untuk langganan, ruang kerja, dan grup sumber daya Anda.

    az account set --subscription <subscription ID>
    az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
    
  2. Atur titik akhir dan nama penyebaran:

    # set your existing endpoint name
    ENDPOINT_NAME=your-endpoint-name
    DEPLOYMENT_NAME=blue
    
  3. 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`
    
  4. Buat profil skala otomatis:

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

Untuk informasi selengkapnya, lihat referensi az monitor autoscale.

Membuat aturan peluasan skala berdasarkan metrik penyebaran

Aturan peluasan skala umum 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 lima 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 condition argumen menunjukkan bahwa aturan memicu ketika konsumsi CPU rata-rata di antara instans VM melebihi 70% selama lima menit. Autoscaling mengalokasikan dua instans VM tambahan ketika kondisi terpenuhi.

Untuk informasi selengkapnya, lihat referensi sintaks Azure CLI az monitor autoscale.

Membuat aturan penyempurnaan berdasarkan metrik penyebaran

Aturan pengurangan skala dapat mengurangi jumlah instans VM saat beban CPU rata-rata ringan. Contoh berikut menunjukkan cara merilis satu simpul, hingga minimal dua, jika beban CPU kurang dari 30% selama lima menit.

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

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 metrik titik akhir penyebaran. Misalnya, Anda dapat mengalokasikan simpul lain ketika latensi permintaan lebih besar dari rata-rata 70 milidetik selama lima menit.

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

Menemukan metrik lain yang didukung

Anda dapat menggunakan metrik lain saat menyiapkan aturan skala otomatis.

Membuat aturan skala berdasarkan jadwal

Anda dapat membuat aturan skala otomatis yang hanya berlaku pada hari-hari tertentu atau pada waktu tertentu. Misalnya, Anda dapat membuat aturan yang menetapkan jumlah simpul menjadi dua pada akhir pekan.

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"

Mengaktifkan atau menonaktifkan skala otomatis

Anda dapat mengaktifkan atau menonaktifkan profil skala otomatis tertentu.

az monitor autoscale update \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --enabled false

Menghapus sumber daya

Perintah berikut menghapus profil autoscaling dan titik akhir.

# 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