Обзор автомасштабирования с помощью масштабируемых наборов виртуальных машин Azure

Масштабируемый набор виртуальных машин Azure может увеличить или уменьшить количество экземпляров виртуальных машин, запускающих приложение. Количество экземпляров можно обновить несколькими способами:

  • Увеличение или уменьшение емкости масштабируемого набора вручную
  • На основе заданного расписания
  • Согласно правилам на основе пороговых значений метрик
  • Автоматически на основе шаблонов использования, обнаруженных прогнозным искусственным интеллектом

Подобная автоматическая гибкая реакция на событие снижает расходы на управление, связанные с мониторингом и оптимизацией производительности приложения. Эта статья содержит общие сведения о доступных метриках производительности и возможностях автомасштабирования.

Примечание.

Использование автомасштабирования требует, чтобы масштабируемый набор был определен с профилем масштабирования виртуальных машин, определяющим конфигурацию добавляемых экземпляров. Дополнительные сведения о профиле масштабирования виртуальных машин.

Масштабирование вручную

Можно вручную увеличить или уменьшить количество экземпляров в масштабируемом sku.capacity наборе виртуальных машин, обновив свойство.

Портал Azure

  1. Перейдите к существующему масштабируемом набору виртуальных машин.
  2. В разделе "Параметры" выберите вкладку "Масштабирование ".
  3. Выберите ручной масштаб, если он еще не выбран.
  4. Обновите число экземпляров.
  5. Нажмите кнопку Save (Сохранить).

Azure CLI

az vmss scale \
	--new-capacity 5 \
	--name <scale set name> \
	--resource-group <resource group name>

Azure PowerShell

Update-AzVmss `
	-SkuCapacity 5 `
	-ResourceGroupName <resource group name> ` 
	-VMScaleSetName <scale set name>  `

Преимущества автомасштабирования

При увеличении потребностей приложения в масштабируемом наборе увеличивается нагрузка на экземпляры виртуальной машины. Если эта повышенная нагрузка согласована, а не просто краткое требование, можно настроить правила автомасштабирования для увеличения и уменьшения числа экземпляров виртуальных машин в масштабируемом наборе.

Примечание.

При использовании автоматического восстановления экземпляров для масштабируемого набора максимальное количество экземпляров в масштабируемом наборе может составлять 1000. См. дополнительные сведения об автоматическом исправлении экземпляров.

После создания этих экземпляров виртуальных машин и развертывания приложений масштабируемые наборы запускают распределение трафика между ними через подсистему балансировки нагрузки. Вы можете контролировать, какие метрики отслеживать, например ЦП или памяти, продолжительность соответствия нагрузки приложения заданному пороговому значению, а также количество экземпляров виртуальной машины, добавляемых в масштабируемый набор.

В вечерние часы или выходные дни потребность в приложении может снизиться. Если такая сниженная нагрузка является согласованной в течение некоторого периода времени, можно настроить правила автомасштабирования, чтобы уменьшить число экземпляров виртуальных машин в масштабируемом наборе. Это действие снижает стоимость запуска масштабируемого набора, так как вы запускаете только то количество экземпляров, которое необходимо для удовлетворения текущего спроса.

Использование метрик на основе узла

Можно создать правила автомасштабирования на основе встроенных метрик узла из экземпляров виртуальных машин. Метрики узла позволяют отслеживать производительность экземпляров виртуальных машин в масштабируемом наборе без необходимости устанавливать или настраивать дополнительные агенты и коллекции данных. Правила автомасштабирования, которые используют эти метрики, могут горизонтально увеличивать или уменьшать масштаб числа экземпляров виртуальных машин в ответ на использование ЦП, потребление памяти или доступ к диску.

Правила автомасштабирования, использующие метрики на основе узла, можно создавать с помощью одного из следующих средств:

Чтобы создать правила автомасштабирования, которые используют более подробные метрики производительности, вы можете установить и настроить расширение системы диагностики Azure на экземплярах виртуальных машин или настроить приложение для использования Application Insights.

В правилах автомасштабирования, которые используют метрики на основе узла, метрики гостевых виртуальных машин с расширением системы диагностики Azure и Application Insights, могут применяться следующие параметры конфигурации.

Источники метрик

Правила автомасштабирования могут использовать метрики из одного из следующих источников.

Источник метрики Вариант использования
Текущий масштабируемый набор Для метрик на основе узла, не требующих установки или настройки дополнительных агентов.
Storage account Расширение системы диагностики Azure записывает данные метрик производительности в службу хранилища Azure, которые затем используются для активации правил автомасштабирования.
Очередь служебной шины Ваше приложение или другие компоненты могут передавать сообщения в очередь служебной шины Azure для активации правил.
Application Insights Пакет инструментирования, установленный в приложении, который выполняет потоковую передачу метрик непосредственно из приложения.

Критерий правила автомасштабирования

Ниже приведены метрики на основе узла, которые можно использовать при создании правил автомасштабирования. При использовании расширения системы диагностики Azure или Application Insights можно определить, какие метрики отслеживать и использовать в правилах автомасштабирования.

Имя метрики
Загрузка ЦП
Сеть (входящий трафик)
Сеть (исходящий трафик)
Число байтов, считанных с диска
Число байтов, записанных на диск
Операций чтения с диска/с
Операций записи на диск/с
Оставшиеся кредиты ЦП
Использованные кредиты ЦП

При создании правил автомасштабирования для отслеживания заданной метрики они оценивают одно из следующих действий агрегирования метрик.

Тип агрегирования
По средней
Минимум
Максимум
Итог
Last
Count

Затем при сравнении значений метрик с заданным порогом с помощью одного из следующих операторов активируются правила автомасштабирования.

Оператор
Больше
Больше или равно
Меньше
Меньше или равно
Равно
Не равно

Действия при активации правил

При активации правил автомасштабирования масштабируемый набор может масштабироваться автоматически одним из следующих способов:

Операция масштабирования Вариант использования
Увеличить счетчик на Фиксированное количество экземпляров виртуальных машин, которые требуется создать. Удобно использовать в масштабируемых наборах с небольшим числом виртуальных машин.
Увеличить процент на Увеличение числа экземпляров виртуальных машин на указанное число процентов. Подходит больших масштабируемых наборов, в которых добавление фиксированного числа экземпляров может быть недостаточным для заметного повышения производительности.
Увеличить число до Создание требуемого числа экземпляров виртуальных машин, чтобы достичь требуемого максимального числа.
Уменьшить счетчик на Фиксированное количество экземпляров виртуальных машин, которые требуется удалить. Удобно использовать в масштабируемых наборах с небольшим числом виртуальных машин.
Уменьшить процент на Уменьшение числа экземпляров виртуальных машин на указанное число процентов. Хорошо подходит для больших масштабируемых наборов, в которых уменьшение фиксированного числа экземпляров может немного уменьшить потребление ресурсов и затраты.
Уменьшить счетчик на Удаление требуемого числа экземпляров виртуальных машин, чтобы достичь требуемого минимального числа.

Метрики гостевых виртуальных машины с расширением системы диагностики Azure

Расширение системы диагностики Azure — это агент, который выполняется в экземпляре виртуальной машины. Этот агент отслеживает метрики производительности и сохраняет их данные в службе хранилище Azure. Эти метрики производительности содержат более подробные сведения о состоянии виртуальной машины, такие как AverageReadTime для дисков или PercentIdleTime для ЦП. Можно создать правила автомасштабирования, основанные на более подробных сведениях о производительности виртуальных машин, а не только на проценте использования памяти или ЦП.

Чтобы использовать расширение системы диагностики Azure, необходимо создать учетные записи хранения Azure для экземпляров виртуальных машин, установить агент системы диагностики Azure, затем настроить виртуальные машины, чтобы обеспечить потоковую передачу данных счетчиков производительности в учетную запись хранения.

Дополнительные сведения см. в статьях, посвященных включению расширения системы диагностики Azure на виртуальной машине Linux или Windows.

Использование метрик уровня приложения с Application Insights

Чтобы получить дополнительные сведения о производительности приложений, можно использовать Application Insights. Для этого нужно установить в приложение небольшой пакет инструментирования, который отслеживает приложение и отправляет данные телеметрии в Azure. Можно отслеживать такие метрики, как время отклика приложения, производительность загрузки страниц и число сеансов. Эти метрики приложения можно использовать для создания детализированных правил автомасштабирования на уровне внедренного компонента, так как они будут активироваться на основе действенных сведений, которые могут влиять на качество работы пользователя.

Дополнительные сведения о службе Application Insights см. в статье Что такое Azure Application Insights?

Плановое автомасштабирование

Можно также создать правила автомасштабирования на основе расписания. Эти правила позволяют автоматически изменять количество экземпляров виртуальных машин фиксированное число раз. При использовании правил на основе производительности возможно снижение производительности приложения перед тем, как правило автомасштабирования активируется и будут подготовлены новые экземпляры виртуальных машин. Если можно спрогнозировать потребление ресурсов, то дополнительные экземпляры виртуальных машин подготавливаются в соответствии с потребностями клиента и приложений.

В следующих примерах показаны сценарии, в которых использование правил автомасштабирования на основе расписания может дать преимущества.

  • В начале рабочего дня при увеличении спроса клиентов масштаб экземпляров виртуальных машин автоматически увеличивается горизонтально. В конце рабочего осуществляется горизонтальное уменьшение масштаба для количества экземпляров виртуальных машин автоматически уменьшается, чтобы свести к минимуму затраты ресурсов ночью, когда уровень использования приложений достаточно низкий.
  • Если отдел интенсивно использует приложение в определенные части месяца или финансового цикла, можно автоматически масштабировать количество экземпляров виртуальных машин, чтобы обеспечить этот отдел дополнительными ресурсами.
  • В случае маркетингового события, рекламной акции или праздничной распродажи можно заранее автоматически масштабировать количество экземпляров виртуальных машин в соответствии с прогнозируемым спросом.

Ограничения

  • Для заданного масштабируемого набора можно использовать до 20 правил автомасштабирования.

Следующие шаги

Правила автомасштабирования, использующие метрики на основе узла, можно создавать с помощью одного из следующих инструментов:

Сведения об управлении экземплярами виртуальных машин см. в статье "Управление Масштабируемые наборы виртуальных машин с помощью Azure PowerShell".

Сведения о том, как создать оповещения при активации правил автомасштабирования, см. в статье Использование действий автомасштабирования для отправки электронной почты и уведомлений об оповещениях веб-перехватчика в Azure Monitor. Вы также можете использовать журналы аудита для отправки электронной почты и уведомлений об оповещениях веб-перехватчика в Azure Monitor.