负载管理概述:资源隔离、限流与熔断
Doris 的负载管理功能用于解决多租户或多业务共用集群时的资源竞争问题。通过合理配置负载管理策略,可以实现资源隔离、防止查询打垮集群、保障业务 SLA。
核心能力包括三个方面:
- 资源隔离:将集群资源(CPU、Memory、IO)划分为多个分组,确保不同用户、不同业务之间互不干扰。
- 并发控制与排队:限制集群同时执行的任务数量,超出阈值时自动排队,防止瞬间高并发冲垮系统。
- 熔断:在查询规划阶段或执行过程中,根据扫描数据量、分配内存、执行时间等条件自动取消异常任务,避免单一查询消耗过多资源。
资源划分方式
Doris 提供三种资源分组方式,适用于不同的部署模式和隔离需求:
| 资源隔离方式 | 隔离粒度 | 软/硬限制 | 跨资源组查询 | 适用场景 |
|---|---|---|---|---|
| Resource Group | 服务器节点级别,资源完全隔离;可以隔离 BE 故障 | 仅硬限 | 不支持,资源组内必须存储至少一份副本 | 存算一体模式下强隔离 |
| Workload Group | BE 进程内隔离;不能隔离 BE 故障 | 软限 + 硬限 | 支持 | 细粒度资源分配、突发流量管控 |
| Compute Group | 服务器节点级别,资源完全隔离;可以隔离 BE 故障 | 仅硬限 | 不支持 | 存算分离模式下强隔离 |
三种方式的具体说明如下:
- Resource Group:以 BE 节点为最小粒度,通过设置标签(tag)划分多个资源组。适用于存算一体模式。
- Workload Group:将单个 BE 内的资源通过 Cgroup 进一步细分,实现进程内的精细化资源分配。
- Compute Group:存算分离模式下的资源组划分方式,与 Resource Group 类似,以 BE 节点为最小粒度。
软限与硬限
硬限(Hard Limit) 是资源使用的绝对上限,任何租户均无法超越。一旦达到硬限,超出部分的资源请求将被直接拒绝。硬限用于防止集群资源耗尽或业务间资源抢占,保障集群整体稳定性。
软限(Soft Limit) 是可以被临时突破的资源上限。当系统空闲时,租户可借用其他资源组的空闲资源;当系统繁忙存在资源争用时,超出软限的请求将无法获得额外资源。软限适合应对突发性流量,如临时查询高峰或短暂的数据写入增量。
资源划分方式与限制模式的对应关系如下:
| 划分方式 | 支持软限 | 支持硬限 |
|---|---|---|
| Resource Group | 否 | 是 |
| Workload Group | 是 | 是 |
| Compute Group | 否 | 是 |
相关文档
- Resource Group - 基于节点标签的资源分组配置
- Workload Group - 基于 Cgroup 的进程内资源分组配置
- Compute Group - 存算分离模式下的资源分组配置
- 并发控制与排队 - 配置查询并发限制与队列策略
- 熔断与 SQL 拦截 - 配置查询熔断规则
- 负载分析与诊断 - 排查资源瓶颈与性能问题