Aracılığıyla paylaş


Sanal makine ölçek kümelerindeki yük taleplerine karşı ölçeği genişletmek için tahmine dayalı otomatik ölçeklendirmeyi kullanma

Tahmine dayalı otomatik ölçeklendirme, azure Sanal Makine Ölçek Kümeleri döngüsel iş yükü desenleriyle yönetmeye ve ölçeklendirmeye yardımcı olmak için makine öğrenmesini kullanır. Geçmiş CPU kullanım desenlerinize göre sanal makine ölçek kümenize genel CPU yükünü tahmin eder. Geçmiş kullanımı gözlemleyerek ve bu kullanımdan öğrenerek genel CPU yükünü tahmin eder. Bu işlem, ölçeği genişletmenin talebi karşılamak için zamanında gerçekleşmesini sağlar.

Tahmine dayalı otomatik ölçeklendirmenin tahmin sağlamak için en az yedi gün geçmişe ihtiyacı vardır. Maksimum örnekleme süresi, en iyi tahmine dayalı sonuçları veren 15 günlük sıralı bir penceredir. Aylık veya yıllık iş yükü desenleri için zamanlama tabanlı otomatik ölçeklendirme veya ölçüm tabanlı otomatik ölçeklendirme yapılandırmalarını kullanın.

Tahmine dayalı otomatik ölçeklendirme, sanal makine ölçek kümeniz için ayarladığınız ölçeklendirme sınırlarına bağlıdır. Sistem sanal makine ölçek kümenizin CPU yükünün ölçeği genişletme sınırınızı aşacağını tahmin ettiğinde, yeni örnekler belirtimlerinize göre eklenir. Tahmin edilen iş yükü artışı gerçekleşmeden 1 saate kadar yeni örneklerin ne kadar önceden sağlanmasını istediğinizi de yapılandırabilirsiniz.

Tahmin, tahmine dayalı ölçeklendirme eylemini tetiklemeden yalnızca tahmin edilen CPU tahmininizi görüntülemenizi sağlar. Tahmine dayalı otomatik ölçeklendirme özelliğini etkinleştirmeden önce tahmin modellerinde güven oluşturmak için tahmini gerçek iş yükü desenlerinizle karşılaştırabilirsiniz.

Tahmine dayalı otomatik ölçeklendirme teklifleri

  • Tahmine dayalı otomatik ölçeklendirme, döngüsel CPU kullanım desenleri gösteren iş yüklerine yöneliktir.
  • Destek yalnızca sanal makine ölçek kümeleri için kullanılabilir.
  • Toplama türü Ortalama olan CPU yüzdesi ölçümü şu anda desteklenen tek ölçümdür.
  • Tahmine dayalı otomatik ölçeklendirme yalnızca ölçeği genişletmeyi destekler. Eylemlerde ölçeklendirmeyi yönetmek için standart otomatik ölçeklendirmeyi yapılandırın.
  • Tahmine dayalı otomatik ölçeklendirme yalnızca Azure Ticari bulutu için kullanılabilir. Azure Kamu bulutları şu anda desteklenmemektedir.

Tahmine dayalı otomatik ölçeklendirmeyi veya tahmini yalnızca Azure portalıyla etkinleştirme

  1. Sanal makine ölçek kümesi ekranına gidin ve Ölçeklendirme'yi seçin.

    Azure portalının sol menüsünde Ölçeklendirme'yi seçmeyi gösteren ekran görüntüsü.

  2. Özel otomatik ölçeklendirme bölümünün altında Tahmine dayalı otomatik ölçeklendirme görüntülenir.

    Azure portalında Özel otomatik ölçeklendirme ve Tahmine dayalı otomatik ölçeklendirme seçeneğinin seçilmesini gösteren ekran görüntüsü.

    Açılan menü seçimini kullanarak şunları yapabilirsiniz:

    • Tahmine dayalı otomatik ölçeklendirmeyi devre dışı bırakın. Devre dışı bırakma, tahmine dayalı otomatik ölçeklendirme için sayfaya ilk geldiğinde varsayılan seçimdir.
    • Yalnızca tahmin modunu etkinleştirin.
    • Tahmine dayalı otomatik ölçeklendirmeyi etkinleştirin.

    Not

    Tahmine dayalı otomatik ölçeklendirme veya yalnızca tahmin modunu etkinleştirebilmeniz için önce standart reaktif otomatik ölçeklendirme koşullarını ayarlamanız gerekir.

  3. Yalnızca tahmin modunu etkinleştirmek için açılan listeden bu modu seçin. CPU Yüzdesi'ne göre bir ölçeği genişletme tetikleyicisi tanımlayın. Ardından Kaydet'i seçin. Tahmine dayalı otomatik ölçeklendirmeyi etkinleştirmek için de aynı işlem geçerlidir. Tahmine dayalı otomatik ölçeklendirmeyi veya yalnızca tahmin modunu devre dışı bırakmak için açılan listeden Devre Dışı Bırak'ı seçin.

    Yalnızca tahmin modunu etkinleştirmeyi gösteren ekran görüntüsü.

  4. İsterseniz, örneklerin ihtiyaç duyulmadan önce tam olarak çalışması için bir başlatma öncesi süresi belirtin. Gerekli tahmin süresinden 5 ila 60 dakika önce örnekleri önceden başlatabilirsiniz.

    Tahmine dayalı otomatik ölçeklendirme ön başlatma kurulumunu gösteren ekran görüntüsü.

  5. Tahmine dayalı otomatik ölçeklendirme veya yalnızca tahmin modunu etkinleştirdikten ve kaydettikten sonra Tahmine dayalı grafikler'i seçin.

    Tahmine dayalı grafikler menü seçeneğinin seçilmesini gösteren ekran görüntüsü.

  6. Üç grafik görürsünüz:

    Tahmine dayalı otomatik ölçeklendirme için üç grafiği gösteren ekran görüntüsü.

    • En üstteki grafikte gerçek ve tahmin edilen toplam CPU yüzdesi karşılaştırması gösterilmektedir. Gösterilen grafiğin zaman aralığı son yedi günden sonraki 24 saate kadardır.
    • Ortadaki grafik, son yedi gün içinde çalışan en fazla örnek sayısını gösterir.
    • Alt grafik, son yedi gün içindeki geçerli Ortalama CPU kullanımını gösterir.

Azure Resource Manager şablonu kullanarak etkinleştirme

  1. Sanal makine ölçek kümenizin sanal makine ölçek kümesi kaynak kimliğini ve kaynak grubunu alın. Örneğin: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/patest2/providers/Microsoft.Compute/virtualMachineScaleSets/patest2

  2. autoscale_only_parameters dosyasını sanal makine ölçek kümesi kaynak kimliği ve otomatik ölçeklendirme ayarı parametreleriyle güncelleştirin.

  3. Otomatik ölçeklendirme ayarlarını içeren şablonu dağıtmak için bir PowerShell komutu kullanın. Örneğin:

PS G:\works\kusto_onboard\test_arm_template> new-azurermresourcegroupdeployment -name binzAutoScaleDeploy -resourcegroupname cpatest2 -templatefile autoscale_only.json -templateparameterfile autoscale_only_parameters.json
PS C:\works\autoscale\predictive_autoscale\arm_template> new-azurermresourcegroupdeployment -name binzAutoScaleDeploy - resourcegroupname patest2 -templatefile autoscale_only_binz.json -templateparameterfile autoscale_only_parameters_binz.json

        DeploymentName        : binzAutoScaleDeploy
        ResourceGroupName     : patest2
        ProvisioningState     : Succeeded
        Timestamp             : 3/30/2021 10:11:02 PM
        Mode                  : Incremental
        TemplateLink
        Parameters            :

                                Name              Type                           Value
                                ================  =============================  ====================
                                targetVmssResourceld String	                        /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/patest2/providers/Microsoft.Compute/virtualMachineScaleSets/patest2
                                location	      String                         East US
                                minimumCapacity   Int                            1
                                maximumCapacity   Int                            4
                                defaultCapacity   Int                            4
                                metricThresholdToScaleOut  Int                             50
                                metricTimeWindowForScaleOut  String                          PT5M
                                metricThresholdToScaleln  Int                              30   
                                metricTimeWindowForScaleln  String                           PT5M 
                                changeCountScaleOut  Int                             1
                                changeCountScaleln  Int                             1
                                predictiveAutoscaleMode String                            Enabled
                           
Outputs                        :
                                Name              Type                           Value
                                ================  ============================== ====================
                            
                                targetVmssResourceld  String	/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/patest2/providers/Microsoft.Compute/virtualMachineScaleSets/patest2 
                                settingLocation  String	                        East US
                                predictiveAutoscaleMode  String	                    Enabled

DeloymentDebugLoglevel         :

PS C:\works\autoscale\predictive_autoscale\arm_template>

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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
		}
	}
}

Azure Resource Manager şablonları hakkında daha fazla bilgi için bkz . Resource Manager şablonuna genel bakış.

Sık sorulan sorular

Bu bölümde sık sorulan sorular yanıtlanmıştır.

Tahmine dayalı grafiklerde CPU yüzdesi neden yüzde 100'ün üzerinde?

Tahmine dayalı grafik, ölçek kümesindeki tüm makineler için kümülatif yükü gösterir. Ölçek kümesinde 5 VM'niz varsa, tüm VM'ler için en yüksek toplu yük %500, yani her VM'nin %100 maksimum CPU yükünün beş katı olur.

Sanal makine ölçek kümesi için tahmine dayalı otomatik ölçeklendirmeyi açtığınızda zaman içinde ne olur?

Tahmin otomatik ölçeklendirme, çalışan bir sanal makine ölçek kümesinin geçmişini kullanır. Ölçek kümeniz yedi günden az bir süre çalışıyorsa modelin eğitildiğini belirten bir ileti alırsınız. Daha fazla bilgi için tahmine dayalı veri yok iletisine bakın. Tahminler zaman geçtikçe gelişir ve sanal makine ölçek kümesi oluşturulduktan 15 gün sonra maksimum doğruluk elde eder.

İş yükü düzeninde değişiklikler gerçekleşir ancak düzenli olarak kalırsa model değişikliği tanır ve tahmini ayarlamaya başlar. Zaman geçtikçe tahmin iyiye gider. Trafik düzeninde değişiklik olduktan 15 gün sonra maksimum doğruluk oranına ulaşılır. Standart otomatik ölçeklendirme kurallarınızın hala geçerli olduğunu unutmayın. Trafikte öngörülemeyen yeni bir artış oluşursa, sanal makine ölçek kümeniz talebi karşılamak için ölçeği genişletmeye devam eder.

Model benim için iyi çalışmıyorsa ne olacak?

Modelleme, periyodiklik sergileyen iş yükleriyle en iyi şekilde çalışır. İlk olarak ölçek kümesinin tahmin edilen CPU kullanımını gerçek ve gözlemlenen kullanımla kapsayan "yalnızca tahmin" seçeneğini etkinleştirerek tahminleri değerlendirmenizi öneririz. Sonuçları karşılaştırıp değerlendirdikten sonra, model tahminleri senaryonuz için yeterince yakınsa tahmin edilen ölçümlere göre ölçeklendirmeyi etkinleştirmeyi seçebilirsiniz.

Tahmine dayalı otomatik ölçeklendirmeyi etkinleştirmeden önce neden standart otomatik ölçeklendirmeyi etkinleştirmem gerekiyor?

Tahmine dayalı model senaryonuz için uygun değilse standart otomatik ölçeklendirme gerekli bir geri dönüşdür. Standart otomatik ölçeklendirme, tipik CPU yük deseninizin bir parçası olmayan beklenmeyen yük artışlarını kapsar. Ayrıca tahmine dayalı veriler alınırken bir hata oluşursa bir geri dönüş sağlar.

Hem tahmine dayalı hem de standart otomatik ölçeklendirme kuralları ayarlanırsa hangi kural geçerli olur?

CPU yükünde beklenmeyen bir artış olduğunda veya tahmine dayalı veriler alınırken hata oluştuğunda standart otomatik ölçeklendirme kuralları kullanılır

Ölçeği ne zaman ve kaç örneğe göre genişletmek istediğinizi anlamak için standart otomatik ölçeklendirme kurallarında ayarlanan eşik değerini kullanırız. CPU kullanımı %70'i aştığında ve gerçek veya tahmin edilen veriler CPU kullanımının %70'in üzerinde olduğunu veya bu değerin üzerinde olacağını gösterdiğinde Sanal Makine Ölçek Kümenizin ölçeğini genişletmesini istiyorsanız ölçeği genişletme işlemi gerçekleşir.

Hatalar ve uyarılar

Bu bölümde sık karşılaşılan hatalar ve uyarılar ele alır.

Standart otomatik ölçeklendirme etkinleştirilmedi

Aşağıdaki hata iletisini alırsınız:

Tahmine dayalı otomatik ölçeklendirmeyi etkinleştirmek için 'CPU Yüzdesi' ölçümünü temel alan bir ölçek genişletme kuralı oluşturun. Otomatik ölçeklendirme kuralı ayarlamak üzere 'Yapılandır' sekmesine gitmek için buraya tıklayın.

Hata iletisi tahmine dayalı otomatik ölçeklendirmenin geçerli kaynağın CPU ölçüm yüzdesine dayalı olduğunu gösteren ekran görüntüsü.

Bu ileti, standart otomatik ölçeklendirmeyi etkinleştirmeden önce tahmine dayalı otomatik ölçeklendirmeyi etkinleştirmeyi denediğiniz ve Ortalama toplama türüyle CPU Yüzdesi ölçümünü kullanacak şekilde ayarladığınız anlamına gelir.

Tahmine dayalı veri yok

Belirli koşullar altında tahmine dayalı grafiklerde veri görmezsiniz. Bu davranış bir hata değildir, amaçlanan davranıştır.

Tahmine dayalı otomatik ölçeklendirme devre dışı bırakıldığında, bunun yerine "Gösterilecek veri yok..." ile başlayan bir ileti alırsınız Ardından tahmine dayalı bir grafik görebilmek için nelerin etkinleştirileceğine ilişkin yönergeleri görürsünüz.

Gösterilecek veri yok iletisini gösteren ekran görüntüsü.

İlk kez bir sanal makine ölçek kümesi oluşturduğunuzda ve yalnızca tahmin modunu etkinleştirdiğinizde, "Tahmine dayalı veriler eğitiliyor..." iletisini alırsınız. ve grafiği görmek için geri dönmek için bir süre.

Tahmine dayalı veriler eğitiliyor iletisini gösteren ekran görüntüsü.

Sonraki adımlar

Aşağıdaki makalelerde otomatik ölçeklendirme hakkında daha fazla bilgi edinin: