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
Sanal makine ölçek kümesi ekranına gidin ve Ölçeklendirme'yi seçin.
Özel otomatik ölçeklendirme bölümünün altında Tahmine dayalı otomatik ölçeklendirme görüntülenir.
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.
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.
İ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 veya yalnızca tahmin modunu etkinleştirdikten ve kaydettikten sonra Tahmine dayalı grafikler'i seçin.
Üç grafik görürsünüz:
- 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
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
autoscale_only_parameters dosyasını sanal makine ölçek kümesi kaynak kimliği ve otomatik ölçeklendirme ayarı parametreleriyle güncelleştirin.
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.
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.
İ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.
Sonraki adımlar
Aşağıdaki makalelerde otomatik ölçeklendirme hakkında daha fazla bilgi edinin: