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
用于资源组管理(见 第 7.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 之间。使用不同的范围来确保用户线程的优先级永远不会高于系统线程。
ENABLE
和 DISABLE
指定资源组是否启用。如果未指定,则组默认启用。禁用的组不能分配线程。
示例:
-
创建一个启用的用户组,该组只有一个 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
语句不会写入二进制日志,也不会被复制。