GaussDB (DWS)配置CPU限额未限制住CPU如何排查处理

举报
七个菠挪 发表于 2025/07/26 18:29:31 2025/07/26
【摘要】 CPU限额未限制住CPU排查处理办法

DWS限制CPU使用是通过操作系统的cgroup限制,要限制CPU使用需要配置CPU限额。

1.首先需要排查是否配置了CPU限额。在控制台资源管理可看到资源池配置。

2.资源池中语句分快车道和慢车道,估算内存小于32MB的语句会走快车道,其余进慢车道。快车道语句不受CPU管控,慢车道才受CPU管控。

select a.coorname,a.usename,a.pid,w.lane,a.query_id,a.query from pgxc_session_wlmstat w join pgxc_stat_activity a on w.nodename=a.coorname and w.threadid=a.pid where a.usename != 'omm' and a.usename != 'Ruby';

lane代表语句走的是快车道还是慢车道,如果需要限制用户所有语句都受CPU管控可以通过alter user xxx set wlm_query_accelerate = 0;使快车道的作业都走到慢车道。

3.如果全部走慢车道后仍限制不住CPU,需要看用户语句所在cgroup下有没有对应线程号

通过活跃视图和等待视图找到语句的resource_poollwtid。

select t.lwtid,t.node_name,a.usename,a.resource_pool,a.query_id,a.query from pgxc_stat_activity a join pgxc_thread_wait_status t on a.query_id = t.query_idwhere a.usename != 'omm' and a.usename != 'Ruby' and t.query_id != 0;

查看资源池在操作系统中cgroup名字,当前环境是在Class_b的batch group下

select * from pg_resource_pool;

ommRuby登录CPU高的节点,gs_cgroup –P查看语句的lwtid是否在,如果存在说明受到CPU管控限制,如果不存在则不受CPU管控

4.检查cgroup配置是否频繁刷新

Cgroup配置是在/sys/fs/cgroup目录下,如果应受管控的语句未被管控,可以查看cgroup配置的时间是否存在刷新,本例父控制组是Class_b,子控制组是batch所以路径如下。

如果存在刷新动作,可以找到检查cgroup动作并注释

老版本该脚本中检查cgroup前会判断OS版本,不同的OS cgroup配置路径存在差异,但检查OS版本时没有正确返回系统cgroup的配置路径,导致检查cgroup认为cgroup配置丢失,触发重新配置动作,导致cgroup频繁刷新,对应cgroup无法限制住CPU使用。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。