GaussDB A(DWS)多租户资源管理配置实例

一、使用gs_cgroup工具配置控制组

1.1配置逻辑集群资源配额

配置标准报告的多租户控制组,父租户80%cpu配额(线下8.0版本只能用整个集群80% )、自主分析控制组 class2:analyze 50%cpu(根据需求调整)配额,标准报告控制组class1:standard 50%cpu

命令

gs_ssh -c “gs_cgroup -c -N LC_B”

  • 创建class控制组

gs_ssh -c "gs_cgroup -c -S findm_b_tenant -N LC_B "

  • 创建workload用户组

gs_ssh -c " gs_cgroup -c -S findm_b_tenant -N LC_B  -G workload_standard –g 50"

gs_ssh -c " gs_cgroup -c -S findm_b_tenant -N LC_B  -G workload_analyze  -g 50" 

gs_ssh -c " gs_cgroup -u -S findm_b_tenant -N LC_B  -G workload_standard –g 50"

gs_cgroup -u -S class1 -G grp1 -g 30

  • 修改CPU配额

gs_cgroup -u -S ${Class控制组名称} -N ${逻辑集群名称} -G ${Workload控制组名称} -g ${CPU配额}

gs_ssh -c “gs_cgroup -c -N LC_B –S FINDM_B_TENANT -s 40 -G wg1 -g 20”

gs_ssh -c " gs_cgroup -u -S findm_b_tenant -N LC_B  -G workload_analyze –g 50"

 

1.1.4查看配置文件中控制组信息。

gs_cgroup –p –N LC_B

select  * from gs_all_control_group_info;

1.2配置逻辑集群资源限额

增加CPU 限额 配置

gs_cgroup -u -S ${Class控制组名称} -N ${逻辑集群名称} -G ${Workload控制组名称} -g ${CPU限额} –fixed

命令示例:

gs_cgroup -u -S findm_b_tenant -N LC_B -G workload_analyze -g 50 –fixed

gs_cgroup --fixed -u -S class1 -G grp1 -g 30 

集群配置:

gs_ssh -c "gs_cgroup -u -S findm_b_tenant -N LC_B -G workload_analyze -g 50 --fixed"

gs_ssh -c "gs_cgroup -u -S findm_b_tenant -N LC_B -G workload_standard -g 50 --fixed"

更新配额

/* gs_ssh -c “gs_cgroup -u -T findm_b_tenant -N LC_B  -G workload_analyze –t 50 --fixed”*/

二、多租户配置

2.1配置多租户

1.创建父租户,内存占集群内存100% (先建父租户资源池(角色绑定),后建业务租户资源池)

CREATE RESOURCE POOL findm_b_pool WITH (CONTROL_GROUP="tenant", NODEGROUP="LC_B",MEM_PERCENT=100);

2.创建业务租户,内存占父租户内存50%,复杂作业并发10。

CREATE RESOURCE POOL findm_stand_child WITH (CONTROL_GROUP="tenant:workload_standard", NODEGROUP="LC_B",MEM_PERCENT=50,ACTIVE_STATEMENTS=10);

自主分析的设置成50%,复杂作业并发10。

CREATE RESOURCE POOL findm_analyze_child WITH (CONTROL_GROUP="b_tenant:workload_analyze", NODEGROUP="LC_B",MEM_PERCENT=50,ACTIVE_STATEMENTS=10);

示例:

 

2.2用户关联多租户(关联业务用户)

1.创建角色关联父租户(必须,所有业务用户都关联到该角色

CREATE ROLE stand RESOURCE POOL '_pool'

NODE GROUP "LC_B" NOLOGIN PASSWORD DISABLE;

2.创建用户关联业务租户

CREATE USER {分析用户}  PASSWORD 'xxxxx' RESOURCE POOL 'standard_pool' NODE GROUP "LC_B" USER GROUP 'stand';

3.将已存在用户关联业务租户

ALTER USER {分析用户} RESOURCE POOL 'analyze_child' NODE GROUP "LC_B" USER GROUP 'stand';

示例:

ALTER USER qtest RESOURCE POOL 'stand_child' NODE GROUP "LC_B" USER GROUP 'stand';

ALTER USER distest RESOURCE POOL 'analyze_child' NODE GROUP "LC_B" USER GROUP 'stand';

三、GaussDB 异常规则

3.1异常规则清单

 

3.2配置异常规则

序号

作用

规则名称

配置命令

1

CPU倾斜率

cpuskewpercent

  gs_ssh -c "gs_cgroup -N LC_B -S  findm_b_tenant -G workload_analyze -E "cpuskewpercent=50,qualificationtime=3200" -a "

2

执行时间

elapsetime

  gs_ssh -c "gs_cgroup -N LC_B -S  findm_b_tenant -G workload_analyze -E "elapsedtime=2400" -a "

3

阻塞时间

blocktime

  gs_ssh -c "gs_cgroup -N LC_B -S  findm_b_tenant -G workload_analyze -E "blocktime=1200" -a "

4

落盘空间

spillsize

gs_ssh -c "gs_cgroup -N LC_B -S  findm_b_tenant -G workload_analyze -E "spillsize=10240" -a "

四、GaussDB单作业限制

query_max_mem 是执行作业所能够使用的最大内存,如果设置的query_max_mem值大于0,当作业执行时所使用内存超过该值时,将报错退出。

1.整个集群设置内存限制作为缺省值(如非标报告):

gs_guc reload -Z coordinator -Z datanode -N all -I all -c “ query_max_mem =value 

2.标准报告 通过 set query_max_mem=0不限制

gs_cgroup –P 查看当前节点资源池挂载情况

 

Gs_cgroup –h 可以查看帮助

错误处理

需要重新挂载cgroup

卸载cgroup

sudo /opt/huawei/Bigdata/mppdb/core/bin/gs_cgroup  -U omm –d

装载cgroup

gs_cgroup -U omm -H /opt/huawei/Bigdata/mppdb/core –c

(完)