← Cloudflare Load Balancing / load-balancing / additional-options
Сброс нагрузки
Используйте сброс нагрузки, чтобы конечная точка, находящаяся под угрозой, не перешла в становится неработоспособным и запуска процесса отказоустойчивого переключения.
После настройки Load Shedding для пула этот пул начнёт перенаправлять трафик на другие пулы в соответствии с параметрами Load Shedding и политика маршрутизации.
Шаг 1. Определите конечные точки под угрозой
Используя собственные внутренние метрики, определяйте конечные точки, которые рискуют достичь порога отказа.
- Если нагрузка на ваш эндпоинт растёт, но риска отказа пока нет, начните с Шаг 2.
- Если ваш эндпоинт близок к отказу, начните с Шаг 4.
Шаг 2. Отбросьте трафик по умолчанию из пула
После того как вы определили конечную точку, находящуюся в зоне риска, отведите от неё небольшую часть По умолчанию трафик из пула этого эндпоинта. Этот трафик не связан с существующими Привязка сессии сессий.
Настройте load shedding через панель управления или API.
Настройка через панель управления
Чтобы включить сброс нагрузки для конкретного пула на панели управления:
- Перейдите в Load Balancing.
- Выберите Пулы на вкладке.
- В пуле выберите Изменить.
- Откройте Настройте Load Shedding в раскрывающемся списке.
- Для Трафик по умолчанию, выберите Политика и Сброс, %:
Параметры политики
При отведении Трафик по умолчанию, у вас есть два Политика опции:
- Random: случайным образом отбрасывает процент запросов, указанный в Сброс, %. Распределяет трафик точнее, но запросы с одного IP-адреса могут попадать на разные конечные точки.
- IP hash: отбрасывает процент пространства хешей IP-адресов, указанный в Сброс, %. Гарантирует, что запросы с одного IP-адреса всегда попадают на одну и ту же конечную точку, но может отклонять значительно больший или меньший процент запросов.
Рекомендации по выбору политики приведены в Политики сброса нагрузки.
Сброс, %
При выборе Сброс, %, начните с небольшого процента и постепенно увеличивайте его. Особенно если вы выбираете Политика вытеснения трафика IP hash, вы можете отклонить больше трафика, чем ожидалось.
Настройка через API
Чтобы включить сброс нагрузки для конкретного пула через API, обновите значения для параметра пула load_shedding объект.
Пример запроса
curl --request PATCH \
"https://api.cloudflare.com/client/v4/accounts/{account_id}/load_balancers/pools/{pool_id}" \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data-binary '{
"load_shedding": {
"default_percent": 20,
"default_policy": "random",
"session_percent": 0,
"session_policy": "hash"
}
}'Рекомендации по выбору политики отключения нагрузки приведены в Политики сброса нагрузки.
Шаг 3. Отслеживайте трафик
После того как вы начали отводить трафик по умолчанию, оцените результат, просмотрев Обзор метрики в аналитике Load Balancing. Опираясь на эти показатели и собственные внутренние метрики, вы сможете определить, нужно ли перенаправлять дополнительный трафик из этого пула.
Если вы видите увеличение трафика, поступающего в пул, вам может понадобиться отсечь дополнительный трафик. Пулы отсекают определённый процент от общего трафика, поэтому любое увеличение общего трафика также увеличит трафик, достигающий вашего пула.
Шаг 4. Отбросьте дополнительный трафик (необязательно)
Если вам нужно отсечь дополнительный трафик пула:
- Выполните шаги, описанные в Шаг 2.
- В дашборде увеличьте значение параметра Сброс, % для Трафик по умолчанию и/или Трафик с привязкой сессий.
- Для API увеличьте значение параметра
default_percentи/илиsession_percent.
Поскольку сброс Трафик Session Affinity нарушит существующие сеансы и может ухудшить впечатление клиентов, поэтому включайте эту опцию только если вашему пулу грозит стать неработоспособным или если значительная доля трафика вашего пула связана с уже существующими сеансами. Дополнительные рекомендации см. в Политики сброса нагрузки.
Шаг 5. Отключите сброс нагрузки
Когда конечная точка перестанет быть в зоне риска, отключите Load Shedding для этого пула.
Чтобы отключить сброс нагрузки в дашборде, выполните те же действия, что и Настройте load shedding через панель управления но задайте Сброс, % к 0 для обоих Трафик по умолчанию и Трафик с привязкой сессий.
Чтобы отключить сброс нагрузки через API, выполните те же действия, что и Настройте load shedding через API но задайте load_shedding объект на null.
Дополнительные примечания
Политики сброса нагрузки
Для Трафик по умолчанию, у вас есть два варианта политики отклонения трафика.
A Random политика:
- Случайным образом отклоняет процент запросов, указанный в Сброс, %.
- Распределяет трафик точнее, так как отсекает нагрузку на уровне отдельных запросов.
- Может приводить к тому, что запросы с одного IP-адреса попадают на разные конечные точки, что способно вызывать промахи кеша, непостоянную задержку или разрыв сессии для Балансировщики нагрузки в режиме DNS-only.
Одна IP hash политика:
- Отбрасывает долю пространства хешей IP-адресов, указанную в Сброс, %.
- Гарантирует, что запросы с одного IP-адреса всегда попадают на один и тот же эндпоинт, что повышает частоту попаданий в кэш, обеспечивает стабильную задержку и сохраняет сессии.
- Может передавать одним конечным точкам больше запросов, а другим меньше, так как хеширование не гарантирует идеально равномерного распределения по IP-адресам: на разные IP-адреса может приходиться разная доля запросов.
Выберите Random политику, если вам нужно более точное распределение исходных запросов и IP hash политику, если вы хотите предотвратить переключение одного IP-адреса между разными конечными узлами.
Для Трафик Session Affinity, можно использовать только IP hash политику, так как эти запросы относятся к существующим сеансам. Увеличивайте только Сброс, % если вы готовы допустить нарушение работы существующие сеансы.
Резервные пулы
Если все пулы в балансировщике нагрузки имеют Сброс нагрузки включена, часть трафика будет направляться в резервный пул. Чтобы весь трафик не попадал в резервный пул, убедитесь, что хотя бы один пул балансировщика нагрузки does not включён сброс нагрузки.
Пулы в нескольких балансировщиках нагрузки
Если вы включите вытеснение трафика для пула, он будет отсекать одинаковый процент трафика во всех ваших балансировщиках нагрузки. Если для конечной точки требуется отсекать разные проценты трафика в разных балансировщиках нагрузки, добавьте эту конечную точку в несколько пулов.