OceanBase 资源组(Resource Group)对 IOPS 的精细化控制,以下说法正确的是?

OceanBase 资源组(Resource Group)对 IOPS 的精细化控制,以下说法正确的是?

A. 资源组仅能限制 CPU 资源,不能限制 IOPS。租户级别的 IOPS 隔离通过 MIN_IOPSMAX_IOPS 在 Unit Config 中设置,资源组无法细分。

B. 通过资源组,可以将不同用户的后台任务(如合并、DDL)与前台 OLTP 查询分配到不同的 IOPS 队列,并分别设置不同的 IOPS 上限和优先级。

C. 资源组对 IOPS 的限制是基于每秒请求数(IOPS)而非带宽(MB/s),且最小调整粒度为 100 IOPS。

D. 当多个资源组同时存在时,系统采用严格优先级调度,高优先级资源组可以完全抢占低优先级资源组的 IOPS 配额,低优先级组可能被饿死。

解析
OceanBase 资源组(通过 CREATE RESOURCE GROUPSET RESOURCE GROUP 配合 DBMS_RESOURCE_MANAGER )支持对 CPU 和 IOPS 进行细粒度控制。对于 IOPS,系统将 I/O 请求分为不同的类别(如 USER、SYS、DDL、COMPACTION 等),每个资源组可以绑定特定类别,并设置 IOPS_LIMITPRIORITY (如 HIGH、MEDIUM、LOW)。后台合并和 DDL 可以被归为低优先级的资源组,避免干扰在线业务。这实现了在同一租户内对不同工作负载的 IOPS 隔离。

  • A 错误 :资源组支持 IOPS 限制 (V4.x 版本),不是仅限 CPU。
  • B 正确 :资源组可以将后台任务和前台查询放入不同组,并分别设限。
  • C 错误 :资源组 IOPS 的最小调整粒度不固定为 100,可以更低(如 1 IOPS),取决于系统版本和配置。且 IOPS 限制是基于带宽还是请求数?底层实现主要基于请求数(IOPS),但可转化为带宽近似控制。C 的说法过于绝对且数值不准确。
  • D 错误 :资源组调度是加权优先级 而非严格抢占。高优先级组可以获得更多配额,但低优先级组不会被完全饿死,系统会保证一定的公平性(如最低配额保障)。D 描述的是“严格优先级”,不符合实际。

正确答案:B

B

A 资源组仅能限制 CPU 资源,不能限制 IOPS :x: 错误 OceanBase 资源组支持同时对 CPU 和 IOPS 进行精细化控制。
B 可以将不同用户的后台任务与前台 OLTP 查询分配到不同 IOPS 队列,设置不同上限和优先级 :white_check_mark: 正确 OceanBase 支持按资源请求类型分组(如将日志提交、转储、后台任务分组),并为不同组配置独立的 MIN_IOPS、MAX_IOPS 和权重。
C IOPS 限制基于每秒请求数而非带宽,最小调整粒度为 100 IOPS :x: 错误 IOPS 配额(MIN_IOPS/MAX_IOPS)在视图中的单位为百分比 (总和不超过 100),而非绝对数值,也不存在 100 IOPS 的最小粒度限制。
D 高优先级资源组可完全抢占低优先级组配额,低优先级组可能被饿死 :x: 错误 OceanBase 采用 “闲时共享,忙时按权重分配” 的策略,会优先满足各资源组的 MIN_IOPS 预留值,不会出现低优先级组被完全饿死的情况。

正确答案:B

B. 通过资源组,可以将不同用户的后台任务(如合并、DDL)与前台 OLTP 查询分配到不同的 IOPS 队列,并分别设置不同的 IOPS 上限和优先级。