Bagikan melalui


Gunakan skala otomatis prediktif untuk meluaskan skala sebelum permintaan beban dalam set skala komputer virtual

Skala otomatis prediktif menggunakan pembelajaran mesin untuk membantu mengelola dan mengatur skala Azure Virtual Machine Scale Sets dengan pola beban kerja siklis. Skala ini memperkirakan beban CPU keseluruhan ke set skala mesin virtual Anda, berdasarkan pola penggunaan CPU historis Anda. Skala ini memprediksi beban CPU secara keseluruhan dengan mengamati dan mempelajari penggunaan historis. Proses ini memastikan bahwa peluasan skala terjadi tepat pada waktunya untuk memenuhi permintaan.

Skala otomatis prediktif membutuhkan riwayat minimal tujuh hari untuk memberikan prediksi. Hasil yang paling akurat didapat dengan 15 hari data historis.

Skala otomatis prediktif mematuhi batas penskalaan yang telah Anda tetapkan untuk set skala mesin virtual Anda. Ketika sistem memprediksi bahwa persentase beban CPU dari set skala mesin virtual Anda akan melewati batas perluasan Anda, instans baru akan ditambahkan sesuai dengan spesifikasi Anda. Anda juga dapat mengonfigurasi seberapa jauh Anda ingin instans baru disediakan, hingga 1 jam sebelum lonjakan beban kerja yang diprediksi terjadi.

Prakiraan saja memungkinkan Anda melihat prakiraan CPU yang diprediksi tanpa memicu tindakan penskalaan berdasarkan prediksi tersebut. Anda kemudian dapat membandingkan prakiraan dengan pola beban kerja Anda yang sebenarnya untuk membangun kepercayaan di model prediksi sebelum mengaktifkan fitur skala otomatis prediktif.

Penawaran skala otomatis prediktif

  • Skala otomatis prediktif adalah untuk beban kerja yang menunjukkan pola penggunaan CPU secara siklis.
  • Dukungan hanya tersedia untuk set skala mesin virtual.
  • Metrik CPU Persentase dengan jenis agregasi Rata-rata adalah satu-satunya metrik yang saat ini didukung.
  • Skala otomatis prediktif hanya mendukung peluasan skala. Konfigurasikan skala otomatis standar untuk mengelola untuk menskalakan dalam tindakan.
  • Skala otomatis prediktif hanya tersedia untuk cloud Azure Commercial. Cloud Azure Government saat ini tidak didukung.

Mengaktifkan skala otomatis prediktif atau prakiraan hanya dengan portal Azure

  1. Buka layar Set skala mesin virtual dan pilih Penskalaan.

    Cuplikan layar yang menunjukkan memilih Penskalaan di menu kiri portal Azure.

  2. Di bagian Skala otomatis kustom, Skala otomatis prediktif akan muncul.

    Cuplikan layar yang menunjukkan memilih opsi Skala otomatis kustom dan Skala otomatis prediktif di portal Azure.

    Dengan pilihan dropdown, Anda dapat:

    • Menonaktifkan skala otomatis prediktif. Nonaktifkan adalah pilihan default saat Anda pertama kali berada di halaman untuk skala otomatis prediktif.
    • Mengaktifkan mode hanya prakiraan.
    • Mengaktifkan skala otomatis prediktif.

    Catatan

    Sebelum dapat mengaktifkan skala otomatis prediktif atau mode prakiraan saja, Anda harus menyiapkan kondisi-kondisi skala otomatis reaktif standar.

  3. Untuk mengaktifkan prakiraan saja, pilih dari dropdown. Tentukan pemicu peluasan skala berdasarkan Persentase CPU. Kemudian pilih Simpan. Proses yang sama berlaku untuk mengaktifkan skala otomatis prediktif. Untuk menonaktifkan mode skala otomatis prediktif atau prakiraan saja, pilih Nonaktifkan dari dropdown.

    Cuplikan layar yang menunjukkan pengaktifan mode prakiraan saja.

  4. Jika diinginkan, tentukan waktu prelaunch sehingga instans sepenuhnya berjalan sebelum diperlukan. Anda dapat melakukan pra-pelunasan instans antara 5 dan 60 menit sebelum waktu prediksi yang diperlukan.

    Cuplikan layar yang memperlihatkan penyiapan pra-pelunasan skala otomatis prediktif.

  5. Setelah Anda mengaktifkan skala otomatis prediktif atau prakiraan saja dan menyimpannya, pilih Bagan prediktif.

    Cuplikan layar yang menunjukkan memilih opsi menu Bagan prediktif.

  6. Anda lihat tiga bagan:

    Cuplikan layar yang menunjukkan tiga bagan untuk skala otomatis prediktif.

    • Bagan teratas menunjukkan perbandingan berlapis persentase CPU total aktual vs prediksi. Rentang waktu grafik yang ditunjukkan adalah dari tujuh hari terakhir hingga 24 jam ke depan.
    • Bagan tengah menunjukkan jumlah maksimum instans yang berjalan selama tujuh hari terakhir.
    • Bagan bawah memperlihatkan pemanfaatan CPU Rata-Rata saat ini selama tujuh hari terakhir.

Aktifkan menggunakan templat Azure Resource Manager

  1. Ambil ID sumber daya set skala mesin virtual dan grup sumber daya dari kumpulan skala komputer virtual Anda. Misalnya: /subscriptions/e954e48d-abcd-abcd-abcd-3e0353cb45ae/resourceGroups/patest2/providers/Microsoft.Compute/virtualMachineScaleSets/patest2

  2. Perbarui file autoscale_only_parameters dengan ID sumber daya set skala mesin virtual dan parameter pengaturan skala otomatis apa pun.

  3. Gunakan perintah PowerShell untuk menyebarkan template yang berisi pengaturan skala otomatis. Contohnya:

PS G:\works\kusto_onboard\test_arm_template> new-azurermresourcegroupdeployment -name binzAutoScaleDeploy -resourcegroupname cpatest2 -templatefile autoscale_only.json -templateparameterfile autoscale_only_parameters.json

Cuplikan layar yang menunjukkan output perintah PowerShell dari perintah sebelumnya saat Anda menjalankan template Resource Manager untuk menyebarkan skala otomatis prediktif.

autoscale_only.json

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
	"parameters": {
		"targetVmssResourceId": {
			"type": "string"
		},
		"location": {
			"type": "string"
		},
		"minimumCapacity": {
			"type": "Int",
			"defaultValue": 2,
			"metadata": {
				"description": "The minimum capacity.  Autoscale engine will ensure the instance count is at least this value."
			}
		},
		"maximumCapacity": {
			"type": "Int",
			"defaultValue": 5,
			"metadata": {
				"description": "The maximum capacity.  Autoscale engine will ensure the instance count is not greater than this value."
			}
		},
		"defaultCapacity": {
			"type": "Int",
			"defaultValue": 3,
			"metadata": {
				"description": "The default capacity.  Autoscale engine will preventively set the instance count to be this value if it can not find any metric data."
			}
		},
		"metricThresholdToScaleOut": {
			"type": "Int",
			"defaultValue": 30,
			"metadata": {
				"description": "The metric upper threshold.  If the metric value is above this threshold then autoscale engine will initiate scale out action."
			}
		},
		"metricTimeWindowForScaleOut": {
			"type": "string",
			"defaultValue": "PT5M",
			"metadata": {
				"description": "The metric look up time window."
			}
		},
		"metricThresholdToScaleIn": {
			"type": "Int",
			"defaultValue": 20,
			"metadata": {
				"description": "The metric lower threshold.  If the metric value is below this threshold then autoscale engine will initiate scale in action."
			}
		},
		"metricTimeWindowForScaleIn": {
			"type": "string",
			"defaultValue": "PT5M",
			"metadata": {
				"description": "The metric look up time window."
			}
		},
		"changeCountScaleOut": {
			"type": "Int",
			"defaultValue": 1,
			"metadata": {
				"description": "The instance count to increase when autoscale engine is initiating scale out action."
			}
		},
		"changeCountScaleIn": {
			"type": "Int",
			"defaultValue": 1,
			"metadata": {
				"description": "The instance count to decrease the instance count when autoscale engine is initiating scale in action."
			}
		},
        "predictiveAutoscaleMode": {
            "type": "String",
            "defaultValue": "ForecastOnly",
            "metadata": {
                "description": "The predictive Autoscale mode."
            }
        }
	},
	"variables": {
	},
	"resources": [{
			"type": "Microsoft.Insights/autoscalesettings",
			"name": "cpuPredictiveAutoscale",
			"apiVersion": "2022-10-01",
			"location": "[parameters('location')]",
			"properties": {
				"profiles": [{
						"name": "DefaultAutoscaleProfile",
						"capacity": {
							"minimum": "[parameters('minimumCapacity')]",
							"maximum": "[parameters('maximumCapacity')]",
							"default": "[parameters('defaultCapacity')]"
						},
						"rules": [{
								"metricTrigger": {
									"metricName": "Percentage CPU",
									"metricNamespace": "",
									"metricResourceUri": "[parameters('targetVmssResourceId')]",
									"timeGrain": "PT1M",
									"statistic": "Average",
									"timeWindow": "[parameters('metricTimeWindowForScaleOut')]",
									"timeAggregation": "Average",
									"operator": "GreaterThan",
									"threshold": "[parameters('metricThresholdToScaleOut')]"
								},
								"scaleAction": {
									"direction": "Increase",
									"type": "ChangeCount",
									"value": "[parameters('changeCountScaleOut')]",
									"cooldown": "PT5M"
								}
							}, {
								"metricTrigger": {
									"metricName": "Percentage CPU",
									"metricNamespace": "",
									"metricResourceUri": "[parameters('targetVmssResourceId')]",
									"timeGrain": "PT1M",
									"statistic": "Average",
									"timeWindow": "[parameters('metricTimeWindowForScaleIn')]",
									"timeAggregation": "Average",
									"operator": "LessThan",
									"threshold": "[parameters('metricThresholdToScaleIn')]"
								},
								"scaleAction": {
									"direction": "Decrease",
									"type": "ChangeCount",
									"value": "[parameters('changeCountScaleOut')]",
									"cooldown": "PT5M"
								}
							}
						]
					}
				],
				"enabled": true,
				"targetResourceUri": "[parameters('targetVmssResourceId')]",
                "predictiveAutoscalePolicy": {
                    "scaleMode": "[parameters('predictiveAutoscaleMode')]"
                }
			}
		}
	],
	"outputs": {
        "targetVmssResourceId" : {
            "type" : "string",
            "value" : "[parameters('targetVmssResourceId')]"
        },
        "settingLocation" : {
            "type" : "string",
            "value" : "[parameters('location')]"
        },
        "predictiveAutoscaleMode" : {
            "type" : "string",
            "value" : "[parameters('predictiveAutoscaleMode')]"
        }
    }
}

autoscale_only_parameters.json

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
	"parameters": {
		"targetVmssResourceId": {
			"value": "/subscriptions/e954e48d-b252-b252-b252-3e0353cb45ae/resourceGroups/patest2/providers/Microsoft.Compute/virtualMachineScaleSets/patest2"
		},
		"location": {
			"value": "East US"
		},
		"minimumCapacity": {
			"value": 1
		},
		"maximumCapacity": {
			"value": 4
		},
		"defaultCapacity": {
		  "value": 4
		},
		"metricThresholdToScaleOut": {
		  "value": 50
		},
		"metricTimeWindowForScaleOut": {
		  "value": "PT5M"
		},
		"metricThresholdToScaleIn": {
		  "value": 30
		},
		"metricTimeWindowForScaleIn": {
		  "value": "PT5M"
		},
		"changeCountScaleOut": {
		  "value": 1
		},
		"changeCountScaleIn": {
		  "value": 1
		},
		"predictiveAutoscaleMode": {
		  "value": "Enabled"
		}
	}
}

Untuk informasi selengkapnya tentang template Azure Resource Manager, lihat Ringkasan template Azure Resource Manager.

Tanya jawab umum

Bagian ini menjawab pertanyaan yang sering diajukan.

Mengapa persentase CPU lebih dari 100 persen pada bagan prediktif?

Bagan prediktif menunjukkan beban kumulatif untuk semua mesin dalam set skala. Jika Anda memiliki 5 mesin virtual dalam set skala, beban kumulatif maksimum untuk semua mesin virtual akan menjadi 500%, yaitu, lima kali beban CPU maksimum 100% dari setiap mesin virtual.

Apa yang terjadi seiring waktu saat Anda mengaktifkan skala otomatis prediktif untuk kumpulan skala mesin virtual?

Prediksi skala otomatis menggunakan riwayat kumpulan skala mesin virtual yang sedang berjalan. Jika set skala Anda telah berjalan kurang dari tujuh hari, Anda akan menerima pesan bahwa model sedang dilatih. Untuk informasi selengkapnya, lihat tidak ada pesan data prediktif. Prediksi akan lebih baik seiring berjalannya waktu dan mencapai akurasi maksimalnya 15 hari setelah set skala mesin virtual dibuat.

Jika perubahan pada pola beban kerja terjadi tetapi tetap berkala, model akan mengenali perubahan tersebut dan mulai menyesuaikan prakiraan. Perkiraan membaik seiring berjalannya waktu. Akurasi maksimum dicapai dalam 15 hari setelah perubahan pola lalu lintas terjadi. Ingat bahwa aturan skala otomatis standar Anda tetap berlaku. Jika terjadi peningkatan lalu lintas baru yang tidak terduga, set skala mesin virtual Anda tetap akan ditingkatkan untuk memenuhi permintaan.

Bagaimana jika model tidak bekerja dengan baik untuk saya?

Pemodelan bekerja paling baik dengan beban kerja yang menunjukkan periodisitas. Sebaiknya Anda terlebih dahulu mengevaluasi prediksi dengan mengaktifkan "prakiraan saja" yang akan melapisi penggunaan CPU yang diperkirakan set skala dengan penggunaan aktual yang diamati. Setelah membandingkan dan mengevaluasi hasilnya, Anda kemudian dapat memilih untuk mengaktifkan penskalaan berdasarkan metrik yang diprediksi jika prediksi model cukup mirip dengan skenario Anda.

Mengapa saya perlu mengaktifkan skala otomatis standar sebelum mengaktifkan skala otomatis prediktif?

Skala otomatis standar adalah cadangan penting jika model prediktif tidak berfungsi dengan baik untuk skenario Anda. Skala otomatis standar akan mengatasi lonjakan beban tak terduga, yang bukan bagian dari pola muatan biasa dari beban CPU Anda. Skala ini juga menyediakan fallback jika terjadi kesalahan dalam mengambil data prediktif.

Aturan mana yang berlaku jika aturan skala otomatis prediktif dan standar ditetapkan?

Aturan skala otomatis standar digunakan jika ada lonjakan tak terduga dalam beban CPU, atau kesalahan terjadi saat mengambil data prediktif

Kami menggunakan ambang yang ditetapkan dalam aturan skala otomatis standar untuk memahami kapan Anda ingin menskalakan dan dengan berapa banyak instans. Jika Anda ingin Set Skala Komputer Virtual Anda diskalakan ketika penggunaan CPU melebihi 70% dan data aktual atau yang diprediksi menunjukkan bahwa penggunaan CPU adalah atau akan lebih dari 70%, maka peluasan skala akan terjadi.

Kesalahan dan peringatan

Bagian ini membahas kesalahan dan peringatan umum.

Tidak mengaktifkan skala otomatis standar

Anda mungkin menerima pesan kesalahan berikut:

Untuk mengaktifkan skala otomatis prediktif, buat aturan peluasan skala berdasarkan metrik 'Persentase CPU'. Klik di sini untuk masuk ke tab 'Konfigurasi' untuk mengatur aturan skala otomatis.

Cuplikan layar yang menunjukkan pesan kesalahan skala otomatis prediktif yang didasarkan pada CPU persentase metrik dari sumber daya saat ini.

Pesan ini berarti Anda mencoba mengaktifkan skala otomatis prediktif sebelum mengaktifkan skala otomatis standar dan menyiapkannya untuk menggunakan metrik CPU Persentase dengan tipe agregasi Rata-rata.

Tidak ada data prediktif

Anda tidak melihat data pada bagan prediktif dalam kondisi tertentu. Perilaku ini bukan kesalahan; dan merupakan perilaku yang diharapkan.

Saat skala otomatis prediktif dinonaktifkan, Anda justru akan menerima pesan yang dimulai dengan "Tidak ada data untuk ditampilkan...". Kemudian, Anda akan melihat petunjuk tentang apa yang harus diaktifkan sehingga Anda dapat melihat bagan prediktif.

Cuplikan layar yang menunjukkan pesan Tidak ada data untuk ditampilkan.

Saat pertama kali membuat set skala mesin virtual dan mengaktifkan mode prakiraan saja, Anda akan menerima pesan "Data prediktif sedang dilatih..." dan waktu untuk menampilkan bagan.

Cuplikan layar yang menunjukkan pesan Data prediktif sedang dilatih.

Langkah berikutnya

Pelajari selengkapnya tentang skala otomatis di artikel berikut ini: