Documentation Home

13.7.2.2 CREATE RESOURCE GROUP 语句

CREATE RESOURCE GROUP group_name
    TYPE = {SYSTEM|USER}
    [VCPU [=] vcpu_spec [, vcpu_spec] ...]
    [THREAD_PRIORITY [=] N]
    [ENABLE|DISABLE]

vcpu_spec: {N | M - N}

CREATE RESOURCE GROUP用于资源组管理(参见 第 5.1.16 节,“资源组”)。此语句创建一个新资源组并为其分配初始属性值。它需要RESOURCE_GROUP_ADMIN 特权。

group_name标识要创建的资源组。如果该组已经存在,则会发生错误。

TYPE属性是必需的。它应该 SYSTEM用于系统资源组, USER用于用户资源组。组类型影响允许THREAD_PRIORITY 值,如后所述。

VCPU属性表示 CPU 亲和性;也就是说,该组可以使用的一组虚拟 CPU:

  • 如果VCPU未给出,则资源组没有 CPU 关联并且可以使用所有可用的 CPU。

  • 如果VCPU给出,则属性值是逗号分隔的 CPU 编号或范围的列表:

    • 每个数字必须是 0 到 CPU 数量 − 1 范围内的整数。例如,在具有 64 个 CPU 的系统上,数字范围可以是 0 到 63。

    • M范围以− 的形式给出 N,其中 M小于或等于 N并且两个数字都在 CPU 范围内。

    • 如果 CPU 编号是允许范围之外的整数或不是整数,则会发生错误。

示例VCPU说明符(这些都是等效的):

VCPU = 0,1,2,3,9,10
VCPU = 0-3,9-10
VCPU = 9,10,0-3
VCPU = 0,10,1,9,3,2

THREAD_PRIORITY属性指示分配给该组的线程的优先级:

  • 如果THREAD_PRIORITY未给出,则默认优先级为 0。

  • 如果THREAD_PRIORITY给出,则属性值必须在 -20(最高优先级)到 19(最低优先级)的范围内。系统资源组的优先级必须在 -20 到 0 的范围内。用户资源组的优先级必须在 0 到 19 的范围内。系统和用户组使用不同的范围确保用户线程永远不会有更高的优先级。优先于系统线程。

ENABLEDISABLE指定资源组最初是启用还是禁用。如果两者均未指定,则默认启用该组。不能为禁用组分配线程。

例子:

  • 创建具有单个 CPU 和最低优先级的已启用用户组:

    CREATE RESOURCE GROUP rg1
      TYPE = USER
      VCPU = 0
      THREAD_PRIORITY = 19;
  • 创建一个没有 CPU 亲和性(可以使用所有 CPU)且优先级最高的禁用系统组:

    CREATE RESOURCE GROUP rg2
      TYPE = SYSTEM
      THREAD_PRIORITY = -20
      DISABLE;

资源组管理在发生它的服务器上是本地的。CREATE RESOURCE GROUP 语句不会写入二进制日志,也不会被复制。