Идентификация факторов автомасштабирования
Автоматическое масштабирование позволяет указать условия, при которых веб-приложение должно быть масштабировано наружу и обратно. Эффективное автоматическое масштабирование гарантирует, что достаточные ресурсы доступны для обработки больших объемов запросов в пиковые периоды, а также управления затратами при уменьшении спроса.
Вы можете настроить автоматическое масштабирование, чтобы определить, когда уменьшать или увеличивать масштаб в зависимости от сочетания факторов, основанных на использовании ресурсов. Вы также можете настроить автоматическое масштабирование в соответствии с расписанием.
В этом уроке вы узнаете, как указать факторы, которые можно использовать для автомасштабирования службы.
Автомасштабирование и план службы приложений
Автомасштабирование — это функция плана службы приложений, используемого веб-приложением. Когда веб-приложение масштабируется, Azure запускает новые экземпляры оборудования, определенного планом службы приложений для приложения.
Чтобы предотвратить неконтролируемое автоматическое масштабирование, в плане службы приложений установлено ограничение на количество экземпляров. Планы в более дорогих ценовых категориях имеют более высокий предел. Автомасштабирование не может создавать больше экземпляров, чем установленный предел.
Заметка
Не все ценовые категории плана службы приложений поддерживают автомасштабирование.
Условия авто-мастштабирования
Вы указываете, как выполнять автомасштабирование путем создания условий автомасштабирования. Azure предоставляет два варианта автомасштабирования:
- Масштабирование на основе метрик, таких как длина очереди диска или количество HTTP-запросов, ожидающих обработки.
- Масштабирование до определенного количества экземпляров в соответствии с расписанием. Например, можно настроить масштабирование в определенное время суток, на конкретную дату или день недели. Вы также указываете дату окончания, и в это время система возвращается к исходному состоянию.
Масштабирование до специфичного числа экземпляров позволяет расширять количество экземпляров только до заданного числа. Если необходимо постепенно увеличивать масштаб, можно объединить автомасштабирование на основе метрик и расписания в единое условие автомасштабирования. Таким образом, можно упорядочить масштаб системы, если количество HTTP-запросов превышает определенное пороговое значение, но только в течение определенных часов дня.
Можно создать несколько условий автомасштабирования для обработки различных расписаний и метрик. Azure автомасштабирует службу при применении любого из этих условий. План службы приложений также имеет условие по умолчанию, которое используется, если ни одно из других условий не применимо. Это условие всегда активно и не имеет расписания.
Метрики для правил автомасштабирования
Для автомасштабирования по метрикам требуется определить одно или несколько правил автомасштабирования. Правило автомасштабирования указывает метрику для отслеживания и способ автоматического масштабирования, когда эта метрика пересекает определенное пороговое значение. Метрики, которые можно отслеживать для веб-приложения:
- процент ЦПУ. Эта метрика указывает на использование ЦП во всех экземплярах. Большое значение показывает, что экземпляры становятся привязанными к ЦП, что может привести к задержкам в обработке клиентских запросов.
- Процент памяти. Эта метрика фиксирует заполнение памяти приложения во всех экземплярах. Большое значение указывает, что свободная память может заканчиваться и может привести к отказу одного или нескольких экземпляров.
- Длина очереди диска. Эта метрика является мерой количества невыполненных запросов ввода-вывода во всех экземплярах. Высокое значение может указывать на возникновение конкуренции за доступ к диску.
- длина очереди HTTP. Эта метрика показывает, сколько клиентских запросов ожидает обработки веб-приложением. Если это число большое, запросы клиентов могут завершиться ошибкой HTTP 408 (время ожидания).
- данные в. Эта метрика показывает количество байтов, полученных на всех инстансах.
- Data Out. Эта метрика — количество байтов, отправляемых всеми экземплярами.
Вы также можете масштабироваться на основе метрик для других служб Azure. Например, если веб-приложение обрабатывает запросы, полученные из очереди служебной шины, может потребоваться развернуть больше экземпляров веб-приложения, если количество элементов, содержащихся в очереди служебной шины Azure, превышает критичную длину.
Как правило автомасштабирования анализирует метрики
Автомасштабирование работает за счет непрерывного анализа изменений значений метрик на протяжении времени во всех экземплярах. Анализ — это многоэтапный процесс.
На первом шаге правило автомасштабирования объединяет значения, полученные для метрики для всех экземпляров за период времени, известный как интервал времени. Каждая метрика имеет собственное внутреннее зерно времени, но в большинстве случаев этот период составляет 1 минуту. Агрегированное значение называется агрегированием времени. Доступны следующие варианты: среднее, минимальное, максимальное, сумма, последнееи количество.
Интервал в одну минуту является коротким интервалом, в котором определяется, является ли любое изменение метрики достаточно устойчивым, чтобы оправдать применение автомасштабирования. Таким образом, правило автомасштабирования выполняет второй шаг, который осуществляет дополнительную агрегацию значения, вычисленного с помощью временной агрегации за более длительный, указанный пользователем период, известный как Длительность. Минимальная длительность составляет 5 минут. Если длительности задано значение 10 минут, правило автомасштабирования объединяет 10 значений, вычисляемых для .
Вычисление агрегирования для длительности может отличаться от временного интервала. Например, если агрегирование времени среднее, а статистический показатель, собранный, процент ЦП в течение одной минуты времени, каждый минуты среднее использование ЦП по всем экземплярам вычисляется. Если для статистики времени задано значение Максимальное, а длительность правила задана на 10 минут, то максимальное из 10 средних значений использования ЦП используется для определения, пересекается ли пороговое значение правила.
Действия автомасштабирования
Когда правило автомасштабирования обнаруживает, что метрика пересекла пороговое значение, она может выполнять действие автомасштабирования. Действие автомасштабирования может быть увеличением масштаба или уменьшением масштаба. Действие горизонтального масштабирования увеличивает количество экземпляров, а действие внутреннего масштабирования уменьшает его. Действие автомасштабирования использует оператор (например, меньше, больше, равнои т. д.), чтобы определить, как реагировать на пороговое значение. Действия горизонтального масштабирования обычно используют оператор больше для сравнения значения метрик с пороговым значением. Действия масштабирования, как правило, сравнивают значение метрик с пороговым значением меньше оператора. Действие автомасштабирования также может задать количество экземпляров на определенный уровень, а не увеличивать или уменьшать доступное число.
Действие автомасштабирования имеет период ожидания, указанный в минутах. В течение этого интервала правило масштабирования не будет активировано снова. Это позволит системе стабилизироваться между событиями автомасштабирования. Помните, что для запуска или завершения работы экземпляров требуется время, поэтому любые метрики, собранные, могут не отображать существенные изменения в течение нескольких минут. Минимальный период охлаждения составляет пять минут.
Связывание правил автомасштабирования
При уменьшении рабочей нагрузки следует планировать масштабирование. Рассмотрите возможность определения правил автомасштабирования в парах в одном условии автомасштабирования. Одно правило автомасштабирования должно указывать, как масштабировать систему, когда метрика превышает верхний порог. Затем другое правило должно определить, как снова масштабировать систему, когда та же метрика снижается ниже порогового значения.
Объединение правил автомасштабирования
Одно условие автомасштабирования может содержать несколько правил автомасштабирования (например, правило масштабирования вверх и соответствующее правило масштабирования вниз). Однако правила автомасштабирования в условиях масштабирования не обязательно должны быть напрямую связаны. Вы можете определить следующие четыре правила в одном условии автомасштабирования:
- Если длина очереди HTTP превышает 10, увеличьте количество экземпляров на 1.
- Если загрузка ЦП превышает 70%, горизонтальное масштабирование на 1
- Если длина очереди HTTP равна нулю, уменьшите масштаб на 1
- Если загрузка ЦП снижается ниже 50%, уменьшите количество ресурсов на 1.
При определении того, следует ли масштабировать, действие автомасштабирования выполняется при выполнении каких-либо правил горизонтального масштабирования (длина очереди HTTP превышает 10 или загрузка ЦП превышает 70%). При уменьшении масштаба действие автомасштабирования выполняется только в том случае, если выполняются все правил уменьшения масштаба (длина очереди HTTP снижается до нуля и загрузка ЦП ниже 50%). Если необходимо выполнить уменьшение масштаба, если выполняется только одно из правил уменьшения масштаба, необходимо определить правила в отдельных условиях автомасштабирования.