Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Прогнозное автомасштабирование использует машинное обучение для администрирования и масштабирования Масштабируемых наборов виртуальных машин Azure с шаблонами циклической рабочей нагрузки. Эта функция прогнозирует общую загрузку ЦП для вашего масштабируемого набора виртуальных машин на основе ваших моделей использования ЦП за прошлые периоды. Она прогнозирует общую загрузку ЦП, отслеживая и учитывая историю использования. Этот процесс обеспечивает своевременное масштабирование для удовлетворения спроса.
Для прогнозирования автомасштабирования требуется не менее семи дней данных о прошлом для составления прогнозов. Максимальный период выборки — скользящее окно в 15 дней, которое обеспечивает наилучшие прогнозные результаты. Для шаблонов ежемесячных или ежегодных рабочих нагрузок используйте конфигурации автомасштабирования на основе расписаний или на основе метрик.
Прогнозное автомасштабирование соответствует границам масштабирования, которые вы установили для масштабируемого набора виртуальных машин. Когда система прогнозирует, что загрузка ЦП вашего масштабируемого набора виртуальных машин превысит порог расширения, новые экземпляры будут добавлены согласно вашим спецификациям. Вы также можете настроить, за сколько времени заранее вы хотите подготовить новые экземпляры, вплоть до 1 часа до прогнозируемого всплеска рабочей нагрузки.
Только прогноз позволяет просматривать прогноз загрузки ЦП без активации действия масштабирования на основе прогноза. Затем вы можете сравнить прогноз с вашими фактическими моделями рабочей нагрузки, чтобы повысить уверенность в моделях прогнозирования, прежде чем включать функцию прогнозного автомасштабирования.
Предложения прогнозного автомасштабирования
- Прогнозное автомасштабирование предназначено для рабочих нагрузок с циклическими колебаниями загрузки ЦП.
- Поддержка доступна только для масштабируемых наборов виртуальных машин.
- В настоящее время поддерживается только одна метрика: Процент использования ЦП с типом агрегирования Среднее.
- Прогнозное автомасштабирование поддерживает только масштабирование вширь. Настройте стандартное автомасштабирование для управления масштабированием в действиях.
- Прогнозное автомасштабирование доступно только для коммерческого облака Azure. Облака Azure для государственных организаций в настоящее время не поддерживаются.
Включение прогнозного автомасштабирования или только прогнозирования с помощью портала Azure
Перейдите на вкладку Масштабируемый набор виртуальных машин и выберите Масштабирование.
В разделе Пользовательское автомасштабирование появляется элемент Прогнозное автомасштабирование.
С помощью раскрывающегося списка можно сделать следующее:
- Отключить прогнозное автомасштабирование. Вариант "Отключить" — это выбор по умолчанию, когда вы впервые попадаете на страницу прогнозного автомасштабирования.
- Включить только прогнозирование.
- Включить прогнозное автомасштабирование.
Примечание.
Прежде чем вы сможете включить прогнозное автомасштабирование или только прогнозирование, необходимо настроить стандартные условия реактивного автомасштабирования.
Чтобы включить только прогнозирование, выберите этот вариант в раскрывающемся списке. Определите триггер горизонтального масштабирования на основе процента ЦП. Затем выберите Сохранить. Этот же процесс применяется для включения прогнозного автомасштабирования. Чтобы отключить прогнозное автомасштабирование или режим только прогноза, выберите Отключить в раскрывающемся списке.
При необходимости укажите время предварительного запуска, чтобы экземпляры были полностью запущены до их необходимости. Экземпляры можно предварительно запустить в диапазоне от 5 до 60 минут до необходимого времени прогнозирования.
Когда вы включили прогнозное автомасштабирование или режим только прогнозирования и сохранили свой выбор, выберите Прогнозирующие диаграммы.
Вы увидите три диаграммы:
- На верхней диаграмме показано наложенное сравнение фактической и прогнозной общей загрузки ЦП. Интервал времени показанного графика — от последних семи дней до ближайших 24 часов.
- На средней диаграмме отображается максимальное количество экземпляров, работающих в течение последних семи дней.
- На нижней диаграмме показана текущая средняя загрузка ЦП за последние семь дней.
Включение с помощью шаблона Azure Resource Manager
Получите идентификатор ресурса и группу ресурсов вашего масштабируемого набора виртуальных машин. Например: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/patest2/providers/Microsoft.Compute/virtualMachineScaleSets/patest2
Обновите файл autoscale_only_parameters, указав идентификатор ресурса масштабируемого набора виртуальных машин и любые параметры автомасштабирования.
Используйте команду PowerShell для развертывания шаблона, содержащего параметры автомасштабирования. Например:
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.
Часто задаваемые вопросы
В этом разделе приведены ответы на часто задаваемые вопросы.
Почему процент ЦП превышает 100% на прогнозных диаграммах?
На прогнозной диаграмме показана совокупная нагрузка для всех компьютеров в масштабируемом наборе. Если в масштабируемом наборе имеется 5 виртуальных машин, максимальная совокупная нагрузка для всех виртуальных машин составит 500%, т. е. в пять раз больше 100% максимальной загрузки ЦП каждой виртуальной машины.
Какие изменения происходят с течением времени, когда вы включаете предсказуемое автомасштабирование для масштабируемого набора виртуальных машин?
Автомасштабирование с функцией прогнозирования использует историю работы масштабируемого набора виртуальных машин. Если ваш масштабируемый набор работает менее семи дней, вы получите сообщение о том, что модель проходит обучение. Дополнительные сведения см. в разделе об отсутствии прогнозных данных. Со временем прогнозы улучшаются, достигая максимальной точности через 15 дней после создания масштабируемого набора виртуальных машин.
Если происходят изменения в шаблоне рабочей нагрузки (но остаются периодическими), модель распознает изменение и начинает соответствующим образом корректировать прогноз. Прогноз со временем улучшается. Максимальная точность достигается через 15 дней после изменения схемы трафика. Помните, что стандартные правила автомасштабирования всё ещё применяются. Если произойдет новое непредвиденное увеличение объемов трафика, ваш масштабируемый набор виртуальных машин все равно будет масштабироваться для удовлетворения спроса.
Что делать, если модель мне не подходит?
Моделирование лучше всего работает с рабочими нагрузками, которые демонстрируют периодичность. Мы рекомендуем сначала оценить прогнозы, выбрав режим "только прогноз," который позволяет сравнить предсказанное использование ЦП в масштабе с фактическим наблюдаемым использованием. После сравнения и оценки результатов вы можете включить масштабирование на основе прогнозных показателей, если прогнозы модели достаточно близки для вашего сценария.
Почему нужно включить стандартное автомасштабирование перед включением прогнозного автомасштабирования?
Стандартное автомасштабирование — это необходимый запасной вариант, если прогнозная модель не подходит для вашего сценария. Стандартное автомасштабирование охватит неожиданные скачки нагрузки, которые не являются частью вашей типичной схемы загрузки ЦП. Это также будет запасным вариантом на случай возникновения ошибки при получении прогнозных данных.
Какое правило действует, если заданы как прогнозные, так и стандартные правила автомасштабирования?
Стандартные правила автомасштабирования используются, если происходит неожиданный всплеск загрузки ЦП или возникает ошибка при получении прогнозных данных.
Мы используем пороговое значение, заданное в стандартных правилах автомасштабирования, чтобы понять, когда и на сколько экземпляров вы хотите масштабировать. Если вы хотите масштабировать набор виртуальных машин при превышении загрузки ЦП 70 %, и фактические или прогнозируемые данные показывают, что использование ЦП превышает или превысит 70 %, то произойдет горизонтальное масштабирование.
Ошибки и предупреждения
В этом разделе рассматриваются распространенные ошибки и предупреждения.
Не включено стандартное автомасштабирование
Отображается следующее сообщение об ошибке:
Чтобы включить прогнозное автомасштабирование, создайте правило горизонтального масштабирования на основе метрик "Процент ЦП". Щелкните здесь, чтобы перейти на вкладку "Настройка", чтобы задать правило автомасштабирования.
Это сообщение означает, что вы попытались включить прогнозное автомасштабирование до того, как включили стандартное автомасштабирование, и настроили его для использования метрики Загрузка ЦП с типом агрегации Среднее.
Нет прогнозных данных
Вы не увидите данные на прогнозных диаграммах при определенных условиях. Это не ошибка, а ожидаемое поведение.
Когда прогнозное автомасштабирование отключено, вы получите сообщение, указывающее на отсутствие данных для отображения, а также инструкции о том, что нужно включить, чтобы вы могли видеть прогнозную диаграмму.
Когда вы впервые создаёте масштабируемый набор виртуальных машин и включаете режим только прогнозирования, поступит сообщение, что идёт обучение прогнозных данных, с указанием времени, через которое будет доступна диаграмма.
Следующие шаги
Дополнительные сведения об автомасштабировании см. в следующих статьях:
- Обзор автомасштабирования
- Общие метрики автомасштабирования Azure Monitor
- Рекомендации по автомасштабированию в Azure Monitor
- Используйте действия автомасштабирования для отправки уведомлений по электронной почте и вебхуку.
- Create or update an autoscale setting in Azure Insights REST API (Создание и изменение параметров автомасштабирования в REST API Azure Insights)