Обзор управления нагрузкой: изоляция ресурсов, ограничение нагрузки и автоматическое прерывание запросов
Управление нагрузкой в Doris помогает решать проблему конкуренции за ресурсы, когда несколько арендаторов или направлений бизнеса совместно используют один кластер. Правильно настроенные политики управления нагрузкой позволяют изолировать ресурсы, предотвращать перегрузку кластера запросами и обеспечивать соблюдение SLA бизнеса.
Основные возможности охватывают три области:
- Изоляция ресурсов: разделение ресурсов кластера (CPU, память, IO) на несколько групп, чтобы разные пользователи и направления бизнеса не мешали друг другу.
- Управление параллелизмом и очередями: ограничение количества задач, одновременно выполняемых кластером. При превышении порога новые задачи автоматически помещаются в очередь, чтобы резкий рост числа одновременных задач не перегружал систему.
- Автоматическое прерывание запросов: автоматическая отмена аномальных задач на этапе планирования или выполнения запроса по таким условиям, как объём сканируемых данных, выделенная память или время выполнения, чтобы отдельный запрос не потреблял слишком много ресурсов.
Способы разделения ресурсов
Doris предоставляет три способа группировки ресурсов для разных режимов развёртывания и требований к изоляции:
| Способ изоляции ресурсов | Уровень изоляции | Мягкое/жёсткое ограничение | Запросы между группами | Сценарии применения |
|---|---|---|---|---|
| Resource Group | На уровне серверных узлов, с полной изоляцией ресурсов; позволяет изолировать сбои BE | Только жёсткое ограничение | Не поддерживаются; в группе ресурсов должна храниться как минимум одна реплика | Строгая изоляция в режиме с совмещением хранения и вычислений |
| Workload Group | Изоляция внутри процесса BE; не позволяет изолировать сбои BE | Мягкое ограничение + жёсткое ограничение | Поддерживаются | Детальное распределение ресурсов, управление всплесками трафика |
| Compute Group | На уровне серверных узлов, с полной изоляцией ресурсов; позволяет изолировать сбои BE | Только жёсткое ограничение | Не поддерживаются | Строгая изоляция в режиме с разделением хранения и вычислений |
Ниже подробно описан каждый из трёх способов:
- Resource Group: использует узел BE как минимальную единицу и разделяет кластер на несколько групп ресурсов с помощью тегов. Применяется в режиме с совмещением хранения и вычислений.
- Workload Group: дополнительно разделяет ресурсы внутри одного BE с помощью Cgroups, обеспечивая детальное распределение ресурсов внутри процесса.
- Compute Group: способ группировки ресурсов для режима с разделением хранения и вычислений. Как и Resource Group, использует узел BE как минимальную единицу.
Мягкое и жёсткое ограничения
Жёсткое ограничение — это абсолютный верхний предел потребления ресурсов, который не может превысить ни один арендатор. После достижения жёсткого ограничения запросы на дополнительные ресурсы сразу отклоняются. Жёсткие ограничения предотвращают исчерпание ресурсов кластера и конкуренцию за них между направлениями бизнеса, обеспечивая общую стабильность кластера.
Мягкое ограничение — это верхний предел потребления ресурсов, который можно временно превышать. При низкой загрузке системы арендатор может заимствовать свободные ресурсы у других групп ресурсов. Когда система загружена и возникает конкуренция за ресурсы, запросы, превышающие мягкое ограничение, не могут получить дополнительные ресурсы. Мягкие ограничения подходят для нагрузки со всплесками, например временного роста числа запросов или кратковременного увеличения объёма загрузки данных.
Соответствие между способами разделения ресурсов и поддерживаемыми типами ограничений приведено ниже:
| Способ разделения | Поддержка мягкого ограничения | Поддержка жёсткого ограничения |
|---|---|---|
| Resource Group | Нет | Да |
| Workload Group | Да | Да |
| Compute Group | Нет | Да |
Связанные документы
- Resource Group - Настройка группировки ресурсов на основе тегов узлов
- Workload Group - Настройка группировки ресурсов внутри процесса на основе Cgroups
- Compute Group - Настройка группировки ресурсов в режиме с разделением хранения и вычислений
- Управление параллелизмом и очередями - Настройка ограничений на число одновременных запросов и политик очередей
- Автоматическое прерывание запросов и блокировка SQL - Настройка правил автоматического прерывания запросов
- Анализ и диагностика нагрузки - Выявление и устранение узких мест в использовании ресурсов и проблем с производительностью