Определение факторов, инициирующих автомасштабирование

Завершено

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

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

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

Автомасштабирование и план Службы приложений

Автомасштабирование — это возможность плана Службы приложений, выбранного для веб-приложения. При расширении приложения в Azure запускаются новые экземпляры оборудования, которые определяются планом Службы приложений.

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

Примечание.

Не все ценовые категории службы приложений поддерживают автомасштабирование.

Условия автомасштабирования

Порядок автомасштабирования определяется условиями. В Azure есть два режима автомасштабирования:

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

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

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

Метрики для правил автомасштабирования

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

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

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

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

Автомасштабирование анализирует тенденции изменения значений метрик с течением времени для всех экземпляров. Анализ осуществляется в несколько этапов.

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

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

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

Действия автомасштабирования

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

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

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

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

Сочетание правил автомасштабирования

Одно условие автомасштабирования может содержать несколько правил (например, правило расширения и соответствующее правило свертывания). Однако правила автомасштабирования в одном условии не обязательно должны быть связаны напрямую. Например, в одном условии автомасштабирования можно определить следующие четыре правила:

  • Если длина очереди HTTP превышает 10, увеличить масштаб на 1
  • Если загрузка ЦП превышает 70 %, увеличить масштаб на 1
  • Если длина очереди HTTP равна 0, уменьшить масштаб на 1
  • Если загрузка ЦП опускается ниже 50 %, уменьшить масштаб на 1

При определении необходимости горизонтального масштабирования выполняется действие автомасштабирования, если выполняются какие-либо из правил горизонтального масштабирования (длина очереди HTTP превышает 10 или загрузка ЦП превышает 70%). При масштабировании действие автомасштабирования выполняется только в том случае, если выполняются все правила масштабирования (длина очереди HTTP снижается до нуля , а загрузка ЦП ниже 50%). Если нужно, чтобы уменьшение масштаба происходило при соблюдении хотя бы одного из соответствующих правил, их следует определить в отдельных условиях автомасштабирования.