Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью параметров автомасштабирования можно настроить объем ресурсов, необходимый для управления колеблющейся нагрузкой приложения. Параметры автомасштабирования можно настроить для активации на основе метрик, указывающих на нагрузку или производительность, или активировать в запланированной дате и времени.
В этой статье описываются параметры автомасштабирования.
Схема настройки автомасштабирования
В следующем примере показан параметр автомасштабирования с одним профилем по умолчанию и двумя правилами метрик в этом профиле:
- Правило горизонтального масштабирования активируется, когда средняя процентная метрика ЦП масштабируемого набора виртуальных машин превышает 85% за последние 10 минут.
- Правило масштабирования активируется, когда средняя процентная метрика ЦП масштабируемого набора виртуальных машин составляет менее 60% за последние 10 минут, как указано значением правила
timeWindow.
Примечание.
У каждого параметра может быть несколько профилей. Дополнительные сведения см. в разделе профили. Для профиля также можно определить несколько правил масштабирования наружу и внутрь. Сведения о том, как они оцениваются, см. в разделе оценки .
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Insights/autoscaleSettings",
"apiVersion": "2022-10-01",
"name": "VMSS1-Autoscale-607",
"location": "eastus",
"properties": {
"name": "VMSS1-Autoscale-607",
"enabled": true,
"targetResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
"profiles": [
{
"name": "Auto created default scale condition",
"capacity": {
"minimum": "1",
"maximum": "4",
"default": "1"
},
"rules": [
{
"metricTrigger": {
"metricName": "Percentage CPU",
"metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
"timeGrain": "PT1M",
"statistic": "Average",
"timeWindow": "PT10M",
"timeAggregation": "Average",
"operator": "GreaterThan",
"threshold": 85,
"dividePerInstance": false
},
"scaleAction": {
"direction": "Increase",
"type": "ChangeCount",
"value": "1",
"cooldown": "PT5M"
}
},
{
"metricTrigger": {
"metricName": "Percentage CPU",
"metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
"timeGrain": "PT1M",
"statistic": "Average",
"timeWindow": "PT10M",
"timeAggregation": "Average",
"operator": "LessThan",
"threshold": 60,
"dividePerInstance": false
},
"scaleAction": {
"direction": "Decrease",
"type": "ChangeCount",
"value": "1",
"cooldown": "PT5M"
}
}
]
}
]
}
}
]
}
В следующей таблице описываются элементы схемы параметра автомасштабирования.
| Раздел | Имя элемента | Имя портала | Описание |
|---|---|---|---|
| Настройка | Идентификатор | Идентификатор ресурса параметра автомасштабирования. Параметры автомасштабирования относятся к ресурсам Azure Resource Manager. | |
| Настройка | имя | Имя параметра автомасштабирования. | |
| Настройка | расположение | Расположение параметра автомасштабирования. Оно может отличаться от расположения масштабируемого ресурса. | |
| свойства | целевойРесурсUri | Идентификатор масштабируемого ресурса. Для каждого ресурса можно задать только один параметр автомасштабирования. | |
| свойства | профили | Условие масштабирования | Параметр автомасштабирования состоит из одного или нескольких профилей. Каждый раз, когда модуль автомасштабирования запускается, он выполняет один профиль. Настройте до 20 профилей на настройку автомасштабирования. |
| профили | имя | Имя профиля. Для него можно указать любое имя, позволяющее отличить профиль от других. | |
| профили | емкость.максимум | Ограничения экземпляра — максимум | Максимальный разрешенный объем. Это обеспечивает, что автомасштабирование не увеличит ваш ресурс выше этого числа при выполнении профиля. |
| профили | минимальная вместимость | Ограничения экземпляра — минимальное значение | Минимальный разрешенный объем. Это гарантирует, что автоматическое масштабирование не уменьшит ресурс ниже этого числа при выполнении профиля. |
| профили | емкость.по умолчанию | Ограничения экземпляра — по умолчанию | Если есть проблема с чтением метрики ресурсов, а текущая емкость ниже по умолчанию, автомасштабирование масштабируется до значения по умолчанию. Это действие гарантирует доступность ресурса. Если текущая емкость уже выше емкости по умолчанию, автомасштабирование не масштабируется. |
| профили | правила | Правила | Автоматическое масштабирование регулирует объемы между максимальными и минимальными значениями с помощью правил в профиле. Определите до 10 отдельных правил в профиле. Обычно правила определяются в парах: одно для определения времени, когда следует увеличить масштаб, а другое — для определения времени, когда следует его уменьшить. |
| правило | metricTrigger | Правило масштабирования | Определяет условие метрики для правила. |
| metricTrigger | название метрики | Имя метрики | Имя метрики. |
| metricTrigger | metricResourceUri | Идентификатор ресурса, выдающего эту метрику. В большинстве случаев это то же самое, что и масштабируемый ресурс. В некоторых случаях это может быть иначе. Например, когда нужно масштабировать набор виртуальных машин по количеству сообщений в очереди хранилища. | |
| metricTrigger | timegrain | Интервал времени (в минутах) | Продолжительность выборки метрик. Например, timeGrain = "PT1M" создает один пример метрик в минуту. |
| metricTrigger | статистика | Статистика интервала времени | Метод, используемый для объединения значений метрик из нескольких экземпляров для каждого timeGrain примера. Допустимые значения: Average, Min, Max, Sum и Count. Например, статистика = "Среднее" и timeGrain = "PT1M" создает 1-минутный пример путем усреднения значений метрик во всех экземплярах. |
| metricTrigger | timeWindow | Продолжительность | Период времени для анализа метрик. Например, timeWindow = "PT10M" означает, что при каждом запуске автомасштабирования он запрашивает метрики за последние 10 минут. Временное окно позволяет нормализовать метрики и избегать реакции на переходные всплески. |
| metricTrigger | агрегирование времени | Агрегирование времени | Метод, используемый для объединения образцов в timeWindow с течением времени. Допустимые значения: Average, Minimum, Maximum, TotalCountи Last. Например, timeAggregation = "Среднее" и timeWindow = "PT10M" означают усреднение десяти 1-минутных выборок. |
| metricTrigger | dividePerInstance | Разделите значение на количество экземпляров. | Если разделениеПоЭкземплярам = true, метрика делится на количество экземпляров в этом ресурсе. Этот параметр полезен для метрик, которые лучше всего агрегируются с помощью Sum или Count и должны быть нормализованы на основе количества активных экземпляров. Например, если метрика — это длина очереди, а агрегирование — Sum, то при деленииНаЭкземпляр = true метрика делится на количество экземпляров в масштабируемом наборе виртуальных машин, что дает среднюю длину очереди на всех виртуальных машинах.
dividePerInstance полезно для метрик, агрегируемых по Sum и Count, но не для агрегирования Average. |
| правило | действие масштабирования | Действие | Действие, выполняемое при активации параметра metricTrigger правила. |
| действие масштабирования | направление | Операция | Увеличьте для расширения или уменьшите для сужения. |
| действие масштабирования | значение | Число экземпляров | Емкость, до которой нужно увеличить или уменьшить ресурс. |
| действие масштабирования | время восстановления | Охлаждение (в минутах) | Период времени, который должен пройти после операции масштабирования, прежде чем это правило сможет инициировать другое действие масштабирования. Автомасштабирование проверяет период ожидания каждого правила по отдельности. Например, если cooldown = "PT10M", это правило не может применяться в течение 10 минут после операции масштабирования. Период ожидания даёт метрикам время стабилизироваться после добавления или удаления экземпляров. |
Профили автомасштабирования
Определите до 20 профилей на настройку автомасштабирования и до 10 правил для каждого профиля. Дополнительные сведения см. в статье Ограничения службы Azure Monitor.
Существует три типа профилей автомасштабирования.
| Тип профиля | Когда его использовать | Есть дата окончания | Один на параметр |
|---|---|---|---|
| По умолчанию | Масштабирование на основе даты или времени не требуется. | нет | Yes |
| Фиксированная дата | Масштабирование для одного конкретного события. | Yes | нет |
| Recurrence | Масштабирование для дня или набора дней недели. | No. Конец определяется временем начала следующего профиля. | нет |
Профиль по умолчанию
Используйте профиль по умолчанию, если вам не нужно масштабировать ресурс на основе определенной даты и времени или дня недели. Профиль по умолчанию выполняется, если нет других применимых профилей для текущей даты и времени. Параметр может иметь только один профиль по умолчанию.
Профиль с фиксированной датой
Профиль с фиксированной датой применим только к одной дате и времени. Используйте профиль фиксированной даты, чтобы задать правила масштабирования для определенного события. Профиль выполняется один раз на дату и время события. Для всех остальных случаев автомасштабирование использует профиль по умолчанию.
...
"profiles": [
{
"name": " regularProfile",
"capacity": {
...
},
"rules": [
...
]
},
{
"name": "eventProfile",
"capacity": {
...
},
"rules": [
...
],
"fixedDate": {
"timeZone": "Pacific Standard Time",
"start": "2017-12-26T00:00:00",
"end": "2017-12-26T23:59:00"
}
}
]
Примечание.
Количество дней между моментами start и end профиля fixedDate не может превышать 365 дней.
Профиль повторения
Используйте профиль повторения для дня или набора дней недели. Схема для повторяющегося профиля не включает дату окончания. Время начала следующего профиля задает дату окончания и время для повторяющегося профиля. Когда вы используете портал для настройки периодических профилей, портал автоматически обновляет профиль по умолчанию так, чтобы время его начала совпадало со временем окончания, указанным для периодического профиля. Дополнительные сведения о настройке нескольких профилей см. в разделе "Автомасштабирование" с несколькими профилями.
В примере частичной схемы показан повторяющийся профиль. Он начинается в 06:00 и заканчивается в 19:00 в субботу и воскресенье. Профиль по умолчанию изменяется, чтобы начать с 19:00 в субботу и воскресенье.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Insights/autoscaleSettings",
"apiVersion": "2022-10-01",
"name": "VMSS1-Autoscale-607",
"location": "eastus",
"properties": {
"name": "VMSS1-Autoscale-607",
"enabled": true,
"targetResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
"profiles": [
{
"name": "Weekend profile",
"capacity": {
...
},
"rules": [
...
],
"recurrence": {
"frequency": "Week",
"schedule": {
"timeZone": "E. Europe Standard Time",
"days": [
"Saturday",
"Sunday"
],
"hours": [
6
],
"minutes": [
0
]
}
}
},
{
"name": "{\"name\":\"Auto created default scale condition\",\"for\":\"Weekend profile\"}",
"capacity": {
...
},
"recurrence": {
"frequency": "Week",
"schedule": {
"timeZone": "E. Europe Standard Time",
"days": [
"Saturday",
"Sunday"
],
"hours": [
19
],
"minutes": [
0
]
}
},
"rules": [
...
]
}
],
"notifications": [],
"targetResourceLocation": "eastus"
}
}
]
}
Оценка автомасштабирования
Параметры автомасштабирования могут иметь несколько профилей. Каждый профиль может иметь несколько правил. При каждом запуске задания автомасштабирования она начинается с выбора соответствующего профиля для указанного времени. Затем автомасштабирование оценивает минимальные и максимальные значения, все правила метрик в профиле и решает, требуется ли действие масштабирования. Задание автомасштабирования выполняется каждые 30–60 секунд в зависимости от типа ресурса. После выполнения операции масштабирования автомасштабирование использует период ожидания, настроенный для каждого подходящего правила, чтобы определить, когда это правило может запустить следующую операцию масштабирования. Период ожидания применяется как к правилам увеличения масштаба, так и к правилам уменьшения масштаба.
Какой профиль будет использовать автомасштабирование?
При каждом запуске службы автомасштабирования профили оцениваются в следующем порядке:
- Профили фиксированной даты
- Повторяющиеся профили
- Профиль по умолчанию
Используется первый найденный подходящий профиль.
Как автомасштабирование оценивает несколько правил?
Правила масштабирования наружу — это правила, в которых для direction задано значение Increase, а правила масштабирования внутрь — это правила, в которых для direction задано значение Decrease.
После того, как автомасштабирование определит, какой профиль следует запустить, он оценивает правила масштабирования на увеличение в профиле, то есть когда направление = "Увеличить". Если активируется одно или несколько правил горизонтального масштабирования, автомасштабирование вычисляет новую емкость, определяемую действиемМасштабирования, указанным для каждого из правил. Если активируется несколько правил горизонтального масштабирования, автомасштабирование увеличивается до максимально указанной емкости, чтобы обеспечить доступность службы.
Например, предположим, что существует два правила: правило 1 указывает горизонтальное масштабирование на три экземпляра, а правило 2 задает горизонтальное масштабирование на пять. Если оба правила активируются, автомасштабирование масштабируется на пять экземпляров. Аналогичным образом, если одно правило указывает горизонтальное масштабирование на три экземпляра, а другое правило задает горизонтальное масштабирование на 15%, то используется большее число двух экземпляров.
Если правила масштабирования вширь не активируются, автоматическое масштабирование проверяет применимость правил масштабирования, то есть правил с направлением = "Уменьшить". Автомасштабирование масштабируется только в том случае, если активируются все правила масштабирования.
Механизм автомасштабирования вычисляет новое значение емкости, определенное с помощью параметра scaleAction в каждом из этих правил. Чтобы обеспечить доступность сервиса, автомасштабирование уменьшает количество экземпляров осторожно, удаляя как можно меньше экземпляров. Например, предположим, что существуют два правила масштабирования: одно сокращает емкость до 50 %, а другое — на три инстанции. Если первое правило приводит к пяти экземплярам, а второе правило - к семи, автомасштабирование сжимается до семи экземпляров.
Каждый раз, когда автогоризонтальное масштабирование рассчитывает результат действия уменьшения масштаба, он оценивает, приведет ли данное действие к увеличению масштаба. Сценарий, в котором масштабируемое действие запускает противоположное масштабируемое действие, называется нестабильностью. Автоматическое масштабирование может отложить действие уменьшения масштаба, чтобы избежать колебаний, или масштабироваться на величину меньше, чем указано в правиле. Дополнительные сведения о флаппинге см. в разделе «Flapping» в автомасштабировании.
Как автомасштабирование оценивает период ожидания?
После любого действия по масштабированию автомасштабирование оценивает каждое возможное правило с учетом настроенного для него периода ожидания. Правило получает право инициировать действие масштабирования, когда после последнего действия масштабирования истекает его собственный период ожидания. Период ожидания не применяется глобально в соответствии с правилом, которое выполнило последнее действие масштабирования.
Рассмотрим профиль с периодом ожидания для масштабирования наружу в 60 минут и периодом ожидания для масштабирования внутрь в 40 минут:
- Пик ЦП активирует горизонтальное масштабирование в 10:00.
- Правило горизонтального масштабирования не может запустить другое действие до 11:00, так как период ожидания составляет 60 минут.
- ЦП возвращается в нормальное состояние в 10:30 и соответствует условию масштабирования. Автомасштабирование отложит действие, так как 40-минутный прохладный режим правила масштабирования не истек.
- В 10:40 правило масштабирования становится допустимым. Если это условие по-прежнему выполняется, правило может инициировать действие по уменьшению масштаба, даже если период ожидания для правила масштабирования на увеличение ещё не истёк.
Обновление параметра автомасштабирования сбрасывает метку времени действия масштабирования и очищает состояние охлаждения для всех правил. Правила могут стать допустимыми во время следующего цикла оценки. Если обновление изменяет минимальную или максимальную емкость профиля, а текущая емкость находится за пределами нового диапазона, автомасштабирование настраивает емкость на новую границу. Это изменение границ профиля не является действием масштабирования, запускаемым метриками, и на него не распространяются периоды ожидания правил метрик.
Если обновление параметров происходит во время выполнения асинхронной операции масштабирования, то целевой поставщик ресурсов определяет, как обрабатывать одновременные операции.
Следующие шаги
Подробнее об автомасштабировании:
- Обзор автомасштабирования
- Общие метрики автомасштабирования Azure Monitor
- Автомасштабирование с несколькими профилями
- Откат в автомасштабировании
- Используйте действия автомасштабирования для отправки уведомлений по электронной почте и веб-перехватчикам
- Create or update an autoscale setting in Azure Insights REST API (Создание и изменение параметров автомасштабирования в REST API Azure Insights)