一、使用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