RESOURCE_GROUPS

RESOURCE_GROUPS 表展示所有资源组 (resource group) 的信息,见使用资源管控 (Resource Control) 实现资源隔离。

1. USE information_schema;
2. DESC resource_groups;
1. +------------+-------------+------+------+---------+-------+
2. | Field      | Type        | Null | Key  | Default | Extra |
3. +------------+-------------+------+------+---------+-------+
4. | NAME       | varchar(32) | NO   |      | NULL    |       |
5. | RU_PER_SEC | bigint(21)  | YES  |      | NULL    |       |
6. | PRIORITY   | varchar(6)  | YES  |      | NULL    |       |
7. | BURSTABLE  | varchar(3)  | YES  |      | NULL    |       |
8. +------------+-------------+------+------+---------+-------+
9. 3 rows in set (0.00 sec)

示例

1. SELECT * FROM information_schema.resource_groups; -- 查看资源组,TiDB 默认预置 `default` 资源组
1. +---------+------------+----------+-----------+
2. | NAME    | RU_PER_SEC | PRIORITY | BURSTABLE |
3. +---------+------------+----------+-----------+
4. | default | UNLIMITED  | MEDIUM   | YES       |
5. +---------+------------+----------+-----------+
1. CREATE RESOURCE GROUP rg1 RU_PER_SEC=1000; -- 创建资源组 `rg1`
1. Query OK, 0 rows affected (0.34 sec)
1. SHOW CREATE RESOURCE GROUP rg1; -- 显示 `rg1` 资源组的定义
1. +----------------+---------------------------------------------------------------+
2. | Resource_Group | Create Resource Group                                         |
3. +----------------+---------------------------------------------------------------+
4. | rg1            | CREATE RESOURCE GROUP `rg1` RU_PER_SEC=1000 PRIORITY="MEDIUM" |
5. +----------------+---------------------------------------------------------------+
6. 1 row in set (0.00 sec)
1. SELECT * FROM information_schema.resource_groups WHERE NAME = 'rg1'; -- 查看资源组 `rg1`
1. +------+------------+----------+-----------+
2. | NAME | RU_PER_SEC | PRIORITY | BURSTABLE |
3. +------+------------+----------+-----------+
4. | rg1  |       1000 | MEDIUM   | NO        |
5. +------+------------+----------+-----------+
6. 1 row in set (0.00 sec)

RESOURCE_GROUPS 表中列的含义如下:

  • NAME:资源组名称。
  • RU_PER_SEC:资源组的回填速度,单位为每秒回填的 Request Unit (RU) 数量。
  • PRIORITY:任务在 TiKV 上处理的绝对优先级。不同的资源按照 PRIORITY 的设置进行调度,PRIORITY 高的任务会被优先调度。如果资源组的 PRIORITY 相同,则会根据 RU_PER_SEC 的配置按比例调度。如果不指定 PRIORITY,资源组的默认优先级为 MEDIUM。
  • BURSTABLE:是否允许此资源组超额使用剩余的系统资源。

RESOURCE_GROUPS - 图1

注意

TiDB 集群在初始化时会自动创建 default 资源组,其 RU_PER_SEC 的默认值为 UNLIMITED (等同于 INT 类型最大值,即 2147483647),且为 BURSTABLE 模式。所有未绑定资源组的请求都将自动绑定至此资源组。在新建配置其他资源组时,建议根据实际情况修改 default 资源组的配置。