GaussDB(DWS)就支持这种操作。确切说,GaussDB(DWS)支持两种并发控制的操作:
1)第一种与内存相关,当给你的用户分配了一定内存时,那么会根据内存的使用情况去限制并发,假如内存使用达到了阈值,那么实际的并发量也会受到限制,达到阈值后的语句会进入排队状态。可以根据pgxc_stat_activity中的enqueue字段进行判断,语句当前是在什么状态。
2)第二种可以在不理会内存的情况下,只计量并发数量,达到并发数量之后,就会让语句进行排队。
这里介绍下单用户控制并发的设置方法:
1.在所有节点创建好控制组
gs_ssh -c “gs_cgroup -c -S class_a”
gs_ssh -c “gs_cgroup -c -S class_a -G workload_a”
2.创建业务资源池
create resource pool p1 with (control_group=”class_a:workload_a”);
alter resource pool p1 with (active_statements=10,mem_percent=0);
3.关联用户与该资源池
ALTER USER testuser RESOURCE POOL ‘p1’;
实例中的资源池,控制组,用户名称等可以随意修改。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/316638.html