Настройка масштабируемого набора виртуальных машин

Завершено

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

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

Масштабирование Масштабируемые наборы виртуальных машин вручную

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

Следующий код использует Azure CLI для изменения количества экземпляров в масштабируемом наборе виртуальных машин:

az vmss scale \
    --name MyVMScaleSet \
    --resource-group MyResourceGroup \
    --new-capacity 6

Автомасштабирование Масштабируемые наборы виртуальных машин

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

Автомасштабирование может быть основано на следующем:

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

Определение условий, правил и ограничений автомасштабирования

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

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

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

Использование автомасштабирования на основе расписания

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

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

Снимок экрана: пример условия масштабирования на основе расписания.

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

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

В примере сценария необходимо увеличить число экземпляров на единицу, если среднее использование ЦП превышает 75 %. Кроме того, вы хотите ограничить операцию горизонтального масштабирования до 50 экземпляров. Это ограничение поможет предотвратить дорогостоящее неконтролируемое масштабирование, вызванное атакой. Аналогичным образом необходимо снизить масштаб, когда средняя загрузка ЦП падает ниже 50 %.

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

  • Загрузка ЦП. Эта метрика сообщает о загрузке ЦП во всех экземплярах. Высокое значение свидетельствует о том, что работа экземпляров начинает ограничиваться производительностью ЦП, что может привести к задержкам в обработке клиентских запросов.
  • Входящие и исходящие потоки. Эти метрики показывают, как быстро сетевой трафик передается в виртуальные машины в масштабируемом наборе и из них.
  • Операций чтения с диска/с и операций записи на диск/с. Эти метрики показывают объем дисковых операций ввода-вывода в масштабируемом наборе.
  • Длина очереди диска данных. Эта метрика показывает количество запросов ввода-вывода только к дискам данных в виртуальных машинах, ожидающих обслуживания.

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

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

Результат вычисления для общей длительности может отличаться от результата для интервала времени. Например, предположим, что агрегат времени — среднее значение и выполняется сбор метрики Загрузка ЦП в течение минутного интервала времени. Для каждой минуты будет вычисляться средний процент использования ЦП во всех экземплярах в течение этой минуты. Если выбран вариант статистики за интервал времени Максимальное значение, а длительность правила установлена в 10 минут, пороговое значение правила определяется по максимальному из десяти средних значений процента загрузки ЦП.

Когда правило масштабирования обнаруживает, что пороговое значение метрики превышено, оно может изменить масштаб. Например, выполнить расширение или свертывание. В первом случае количество экземпляров увеличивается, а во втором — уменьшается.

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

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

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

На рисунке ниже показано правило масштабирования, определенное на портале Azure.

Снимок экрана: правило масштабирования на основе метрик на портале Azure.