CPU优先级
背景信息
通过负载管理(队列控制)设置了全局和局部并发控制之后,当执行的并发任务数超过该设置的并发数之后,新的任务会进入到等待队列中。队列按照先进先出的原则排队执行。
资源负载管理开启模式下等待队列的机制如图1所示:
图1 负载管理等待队列的机制


并发受限制类型 |
调度执行机制 |
|---|---|
对于受全局并发数限制的任务 |
|
对于受局部并发数限制的任务 |
|
对于受全局并发数量限制的任务,在CN等待队列中,静态并发控制情况下,任务进入资源池的顺序由执行该任务的用户所绑定的资源池的优先级决定;动态负载管理情况下,任务进入资源池的顺序按照先进先出原则。值得注意的是,在动态负载管理情况下,中心协调节点(CCN)上等待的队列,任务进入资源池的顺序由执行该任务的用户所绑定的资源池的优先级决定。
前提条件
- 已参考8了解控制组的分类以及控制方式。
- 已熟悉gs_cgroup和gs_ssh的使用。
操作步骤
- 以操作系统用户omm登录GaussDB 200集群任一主机。执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。
- 调资源池的优先级。调整资源池绑定的控制组“class_a”的资源比例占Class总资源的10%。
gs_ssh -c "gs_cgroup -u -S class_a -s 10"说明:
调整资源池的优先级可以通过调整资源池绑定的控制组资源比例来实现。当资源池绑定的控制组的资源比例发生变化,则其对应的优先级也会同步变化。
- 调整当前用户的优先级。
- 使用gsql连接数据库。
- 调整用户“tenant_a1”绑定的资源池为“resource_pool_b1”。
1
ALTER USER tenant_a1 WITH RESOURCE POOL 'resource_pool_b1';
说明:
- 调整用户的优先级可以通过调整用户绑定的资源池来实现。
- 调整用户优先级需要有sysadmin权限。
- 对于后台线程以及线程复用执行的新作业,该值的改动不会生效。如果希望这类线程即时识别参数变化,可以使用kill session或重启节点的方式来实现。
- 通过设置当前会话关联的控制组为“class_a:workload_a2”或资源池为“resource_pool_a2”,调整会话的优先级。
1
postgres=# set cgroup_name="class_a:workload_a2";
或
1
set session_respool="resource_pool_a2";
说明:
调整当前会话的优先级可以通过调整当前会话关联的控制组或资源池来实现。
- 调整任务在队列中的位置。
- 查询CN队列中的阻塞任务,获取需要调整的阻塞任务的threadid。
1
SELECT * FROM pg_session_wlmstat where status = 'pending';
- 调整任务在CN队列中的位置,将该任务调整到CN队列的最前端。
1
SELECT pg_wlm_jump_queue(threadid);
- 作业执行中,把作业的优先级调整到class_a:workload_a2。通过视图pg_session_wlmstat查询到作业的threadid。
1
SELECT gs_wlm_switch_cgroup(threadid, 'class_a:workload_a2');
说明:
如果语句优先级较低或者长时间被阻塞需要尽快执行,可以使用插队操作,只有管理员才有权限对正在执行的任务调整优先级。
- 查询CN队列中的阻塞任务,获取需要调整的阻塞任务的threadid。
查看CPU优先级的配置信息
- 查看控制组的资源占比
gs_cgroup -pClass Group information is listed: GID: 20 Type: CLASS Name: DefaultClass TopGID: 3 Percent(%): 124(20) MaxLevel: 1 RemPCT: 100 Cores: 0-3 GID: 21 Type: CLASS Name: class_a TopGID: 3 Percent(%): 249(40) MaxLevel: 3 RemPCT: 20 Cores: 0-3- 查看用户绑定的资源池
使用gsql连接数据库。执行如下命令
1 2 3 4 5
SELECT rolrespool FROM PG_AUTHID WHERE rolname = 'rolename'; rolrespool -------------- default_pool (1 row)
- 查看当前会话绑定的控制组:
1
SHOW CGROUP_NAME;
- 查看当前会话绑定的资源池:
1
SHOW SESSION_RESPOOL;
查看更多:华为GaussDB 200 优先级控制 - 查看用户绑定的资源池
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论
- 调整当前用户的优先级。




