GBase 8a
安装配置
文章

【转载“GBase 8a数据库”公众号】GBase 8a MPP Cluster 资源管理详解:资源池、多租户与负载管控实践

发表于2026-08-27 10:24:25246次浏览0个评论

什么是资源管理器

GBase 8a MPP Cluster 资源管理功能可以对 SELECT 和 DML 等受控 SQL 在运行过程中使用的 CPU、内存、I/O 和磁盘空间等资源进行合理管控,以达到资源合理利用,系统稳定性运行的要求。

在没有资源管理的情况下,多用户多任务并发执行,资源消耗得不到有效调节,会出现任务间资源激烈争抢以及消耗过度等情况。在这样的场景下,SQL 的执行会变得缓慢并且不可预期,系统会因为资源使用过度而崩溃。因此需要对资源的使用进行管理调度,使得 SQL 任务能够高效快速的运行,系统能够更稳定。


资源管理关系层级详解

GBase 8a MPP Cluster 资源管理由以下组件组成:

组件 说明
Consumer Group 用户通过消费者组成批管理
Resource Pool 通过资源池配置,包含了静态和动态资源池
Resource Plan 将不同的资源方案整合到一起,可以包含多个资源指令(消费者组和资源池的对照关系)。同一时刻只能由 1 个资源计划激活
Resource Directive 通过组合消费者组和资源池,形成对这个组用户的资源管理,并加入某个资源计划里

GBase 8a MPP Cluster 资源管理关系图如下:

b7d75753d49b9c986c7e87d105ca0f10_MD5.png

核心组件详解

01 Consumer Group(资源消费组)

  • 多个用户的集合,consumer group 与 user 之间是一对多的关系
  • Default Consumer Group: 数据库自动创建的资源消费组,未显式加入自定义资源消费组的用户隶属于该组
  • Default Consumer Group 必须手动挂接一个动态资源池

02 Resource Pool(资源池)

  • 若干系统资源的集合,分为 ​static resource pool​(静态资源池)和 ​dynamic resource pool​(动态资源池)
  • 一个 static resource pool 中可以包含多个 dynamic resource pool
  • 一个 dynamic resource pool 只能隶属于一个 static resource pool

03 Resource Plan(资源计划)

  • 描述 consumer group 和 resource pool 之间的关联关系的集合
  • 在一个 resource plan 下,resource pool 和 consumer group 是一对多的关系
  • 一个 resource pool 可以关联多个 consumer group

04 Resource Directive(资源指令)

  • 描述指定 resource plan 中 consumer group 与 resource pool 之间的关联关系
  • default consumer group 与 resource pool 之间必须有关联关系

资源调度核心流程

资源管理配置流程从创建用户自定义资源消费组开始,经权限校验后,将用户纳入消费组;同时依次创建静态资源池、动态资源池及资源计划,并通过资源指令分别将自定义消费组和缺省消费组与动态资源池完成关联,最后激活资源计划使配置生效。

完整闭环: 用户 → 消费组 → 资源池 → 计划 → 激活

资源管理流程图如下: 1e826ab663bd74a93d6494a8d97bdd20_MD5.png


多维度资源管控策略

GBase 8a MPP Cluster 资源管理功能支持以下资源维度的管控:

资源维度 控制内容
CPU 受控 SQL 使用 CPU 优先级和百分比控制,以及 SQL 并发数及并行度的管理
内存 受控 SQL 使用的算子 buffer(large heap)内存使用上限的控制
I/O 受控 SQL 使用的 direct I/O 磁盘读写速率上限的控制
磁盘空间 表数据文件占用磁盘空间大小的管控

资源管理实施要点

环境要求

  • 集群所有节点必须安装 libcgroup 和 libcgroup-devel rpm 包
  • 资源管理启动之前确保 cgconfig 服务已启动

注意事项

  • 磁盘空间管控仅对数据文件占用磁盘空间大小进行管控,索引文件不在管控范围内
  • 由于 RH6.x/SUSE11 等低版本操作系统存在内核缺陷,可能会导致大负载情况下操作系统宕机

资源全生命周期管理

01 创建和管理 Consumer Group

  • 不同 VC 中的 group_name 允许重名
  • 集群安装完成后,存在默认资源消费组 default_consumer_group(id=1)
  • 任何计划内 default_consumer_group 必须关联动态资源池

02 用户所属消费者组配置

  • 同一 VC 下,consumer group 与 user 之间是一对多的关系
  • 一个 consumer group 中可以包含多个 user
  • 一个 user 只能隶属于一个 consumer group

03 管理 Resource Pool

  • 静态资源池: 资源供给者
  • 动态资源池: 资源管理者,约束任务对资源的使用

04 资源计划 Resource Plan

  • 按照一定规律规划集群中资源使用的方案
  • 将资源消费组挂接到合理的资源池中,保证更有效地利用集群资源

05 资源指令 Resource Directive

  • 指定在资源计划中资源消费组与动态资源池的挂接关系

06 激活资源管理

  • 同一 VC 下,同一时段只能有一个 plan 被激活
  • 在任何 resource plan 中,default consumer group 必须与动态池关联,才可以激活该 resource plan

总结与运维建议

GBase 8a 的资源管理功能具备以下特点:

特点 说明
灵活的资源控制能力 支持物理资源隔离和逻辑资源隔离两种方式,可组合使用
多维度资源限制 支持 CPU、内存、磁盘空间、I/O、并发数等多种资源维度的限制和分配
优先级管理 支持任务优先级设置,保障关键业务资源需求
多业务场景支持 适用于多业务混合负载、批量加工与即席查询隔离、用户资源配额控制等场景

总而言之,GBase 8a 的资源管理功能是一个灵活、高效、多维度的系统资源控制工具,能够帮助企业在多业务共享数据库集群的场景下,保障各业务的稳定运行,最大化系统资源利用率。

评论

登录后才可以发表评论