Перейти к содержимому
Последнее обновление

Обзор управления нагрузкой: изоляция ресурсов, ограничение нагрузки и автоматическое прерывание запросов

Управление нагрузкой в 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НетДа