Обзор автомасштабирования с помощью масштабируемых наборов виртуальных машин Azure
Масштабируемый набор виртуальных машин Azure может автоматически увеличивать или уменьшать количество экземпляров виртуальных машин для выполнения вашего приложения. Подобная автоматическая гибкая реакция на событие снижает расходы на управление, связанные с мониторингом и оптимизацией производительности приложения. Вы создаете правила, определяющие допустимую производительность для работы клиента. При достижении определенных порогов задействуются правила автомасштабирования для настройки емкости масштабируемого набора. Можно также запланировать события, чтобы автоматически увеличить или уменьшить емкость масштабируемого набора фиксированное число раз. Эта статья содержит общие сведения о доступных метриках производительности и возможностях автомасштабирования.
Преимущества автомасштабирования
При увеличении потребностей приложения в масштабируемом наборе увеличивается нагрузка на экземпляры виртуальной машины. Если такая увеличенная нагрузка представляет собой не просто краткий спрос, а является согласованной, можно настроить правила автомасштабирования, чтобы увеличить число экземпляров виртуальной машины в масштабируемом наборе.
Если вы используете автоматическое исправление экземпляров для масштабируемого набора, количество экземпляров в этом наборе не должно быть выше 200. См. дополнительные сведения об автоматическом исправлении экземпляров.
После создания этих экземпляров виртуальных машин и развертывания приложений масштабируемые наборы запускают распределение трафика между ними через подсистему балансировки нагрузки. Вы можете контролировать, какие метрики отслеживать, например ЦП или памяти, продолжительность соответствия нагрузки приложения заданному пороговому значению, а также количество экземпляров виртуальной машины, добавляемых в масштабируемый набор.
В вечерние часы или выходные дни потребность в приложении может снизиться. Если такая сниженная нагрузка является согласованной в течение некоторого периода времени, можно настроить правила автомасштабирования, чтобы уменьшить число экземпляров виртуальных машин в масштабируемом наборе. Это действие снижает стоимость запуска масштабируемого набора, так как вы запускаете только то количество экземпляров, которое необходимо для удовлетворения текущего спроса.
Использование метрик на основе узла
Можно создать правила автомасштабирования на основе встроенных метрик узла из экземпляров виртуальных машин. Метрики узла позволяют отслеживать производительность экземпляров виртуальных машин в масштабируемом наборе без необходимости устанавливать или настраивать дополнительные агенты и коллекции данных. Правила автомасштабирования, которые используют эти метрики, могут горизонтально увеличивать или уменьшать масштаб числа экземпляров виртуальных машин в ответ на использование ЦП, потребление памяти или доступ к диску.
Правила автомасштабирования, использующие метрики на основе узла, можно создавать с помощью одного из следующих средств:
Чтобы создать правила автомасштабирования, которые используют более подробные метрики производительности, вы можете установить и настроить расширение системы диагностики Azure на экземплярах виртуальных машин или настроить приложение для использования Application Insights.
В правилах автомасштабирования, которые используют метрики на основе узла, метрики гостевых виртуальных машин с расширением системы диагностики Azure и Application Insights, могут применяться следующие параметры конфигурации.
Источники метрикПравила автомасштабирования могут использовать метрики из одного из следующих источников.
Источник метрики Вариант использования Текущий масштабируемый набор Для метрик на основе узла, не требующих установки или настройки дополнительных агентов. Учетная запись хранения Расширение системы диагностики Azure записывает данные метрик производительности в службу хранилища Azure, которые затем используются для активации правил автомасштабирования. Очередь служебной шины Ваше приложение или другие компоненты могут передавать сообщения в очередь служебной шины Azure для активации правил. Application Insights Пакет инструментирования, установленный в приложении, который выполняет потоковую передачу метрик непосредственно из приложения.
Критерий правила автомасштабированияНиже приведены метрики на основе узла, которые можно использовать при создании правил автомасштабирования. При использовании расширения системы диагностики Azure или Application Insights можно определить, какие метрики отслеживать и использовать в правилах автомасштабирования.
Имя метрики Percentage CPU Сеть (входящий трафик) Сеть (исходящий трафик) Скорость чтения с диска Disk Write Bytes Disk Read Operations/Sec Disk Write Operations/Sec Оставшиеся кредиты ЦП Использованные кредиты ЦП
При создании правил автомасштабирования для отслеживания заданной метрики они оценивают одно из следующих действий агрегирования метрик.
Тип агрегирования Среднее Минимальные Максимальная Итог Последний Count
Затем при сравнении значений метрик с заданным порогом с помощью одного из следующих операторов активируются правила автомасштабирования.
Оператор Больше Больше или равно Меньше чем Меньше или равно Равно Не равно
Действия при активации правилПри активации правил автомасштабирования масштабируемый набор может масштабироваться автоматически одним из следующих способов:
Операция масштабирования Вариант использования Увеличить счетчик на Фиксированное количество экземпляров виртуальных машин, которые требуется создать. Удобно использовать в масштабируемых наборах с небольшим числом виртуальных машин. Увеличить процент на Увеличение числа экземпляров виртуальных машин на указанное число процентов. Подходит больших масштабируемых наборов, в которых добавление фиксированного числа экземпляров может быть недостаточным для заметного повышения производительности. Увеличить число до Создание требуемого числа экземпляров виртуальных машин, чтобы достичь требуемого максимального числа. Уменьшить счетчик на Фиксированное количество экземпляров виртуальных машин, которые требуется удалить. Удобно использовать в масштабируемых наборах с небольшим числом виртуальных машин. Уменьшить процент на Уменьшение числа экземпляров виртуальных машин на указанное число процентов. Хорошо подходит для больших масштабируемых наборов, в которых уменьшение фиксированного числа экземпляров может немного уменьшить потребление ресурсов и затраты. Уменьшить счетчик на Удаление требуемого числа экземпляров виртуальных машин, чтобы достичь требуемого минимального числа.
Метрики гостевых виртуальных машины с расширением системы диагностики Azure
Расширение системы диагностики Azure — это агент, который выполняется в экземпляре виртуальной машины. Этот агент отслеживает метрики производительности и сохраняет их данные в службе хранилище Azure. Эти метрики производительности содержат более подробные сведения о состоянии виртуальной машины, такие как AverageReadTime для дисков или PercentIdleTime для ЦП. Можно создать правила автомасштабирования, основанные на более подробных сведениях о производительности виртуальных машин, а не только на проценте использования памяти или ЦП.
Чтобы использовать расширение системы диагностики Azure, необходимо создать учетные записи хранения Azure для экземпляров виртуальных машин, установить агент системы диагностики Azure, затем настроить виртуальные машины, чтобы обеспечить потоковую передачу данных счетчиков производительности в учетную запись хранения.
Дополнительные сведения см. в статьях, посвященных включению расширения системы диагностики Azure на виртуальной машине Linux или Windows.
Использование метрик уровня приложения с Application Insights
Чтобы получить дополнительные сведения о производительности приложений, можно использовать Application Insights. Для этого нужно установить в приложение небольшой пакет инструментирования, который отслеживает приложение и отправляет данные телеметрии в Azure. Можно отслеживать такие метрики, как время отклика приложения, производительность загрузки страниц и число сеансов. Эти метрики приложения можно использовать для создания детализированных правил автомасштабирования на уровне внедренного компонента, так как они будут активироваться на основе действенных сведений, которые могут влиять на качество работы пользователя.
Дополнительные сведения о службе Application Insights см. в статье Что такое Azure Application Insights?
Плановое автомасштабирование
Можно также создать правила автомасштабирования на основе расписания. Эти правила позволяют автоматически изменять количество экземпляров виртуальных машин фиксированное число раз. При использовании правил на основе производительности возможно снижение производительности приложения перед тем, как правило автомасштабирования активируется и будут подготовлены новые экземпляры виртуальных машин. Если можно спрогнозировать потребление ресурсов, то дополнительные экземпляры виртуальных машин подготавливаются в соответствии с потребностями клиента и приложений.
В следующих примерах показаны сценарии, в которых использование правил автомасштабирования на основе расписания может дать преимущества.
- В начале рабочего дня при увеличении спроса клиентов масштаб экземпляров виртуальных машин автоматически увеличивается горизонтально. В конце рабочего осуществляется горизонтальное уменьшение масштаба для количества экземпляров виртуальных машин автоматически уменьшается, чтобы свести к минимуму затраты ресурсов ночью, когда уровень использования приложений достаточно низкий.
- Если отдел интенсивно использует приложение в определенные части месяца или финансового цикла, можно автоматически масштабировать количество экземпляров виртуальных машин, чтобы обеспечить этот отдел дополнительными ресурсами.
- В случае маркетингового события, рекламной акции или праздничной распродажи можно заранее автоматически масштабировать количество экземпляров виртуальных машин в соответствии с прогнозируемым спросом.
Дальнейшие действия
Правила автомасштабирования, использующие метрики на основе узла, можно создавать с помощью одного из следующих инструментов:
В этом обзор описывается, как использовать правила автомасштабирования для горизонтального масштабирования, а также как увеличивать или уменьшать число экземпляров виртуальных машин в масштабируемом наборе. Чтобы увеличить или уменьшить размер экземпляров виртуальных машин, вы также можете выполнить вертикальное масштабирование. Дополнительные сведения см. в статье Вертикальное автомасштабирование масштабируемых наборов виртуальных машин.