15.7.2.2 创建资源组语句
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:
CREATE RESOURCE GROUP rg2 TYPE = SYSTEM THREAD_PRIORITY = -20 DISABLE;
资源组管理是发生在服务器上的本地操作。CREATE RESOURCE GROUP
语句不写入二进制日志,不会被复制。