【异常sql】找到占用CPU过高的sql语句

问题描述

gaussdb进程持续占CPU过高,需找到占用CPU过高的sql语句

问题处理

  1. 找一个gaussdb进程,确认进程号和对应dn的端口号(进程号32089)
  2. 执行ps H -eo pid,tid,pcpu | sort -n -k 3 | grep 32089,可以查到进程内各个线程占用CPU的情况

    最后几条结果如下:

    32089    48369    81.9

    32089    41335    82.3

    32089    10596    85.6

  3. 连续执行多次,发现占用CPU高的线程没有变过
  4. 连接到此dn(注意端口号搞对)
  5. select query_id from pg_thread_wait_status where lwtid = 10596;

    查到query_id 为95174458

  6. select * from pg_stat_activity where query_id = 95174458;

    即可查到对应语句

  7. 和客户业务侧确认,该语句是临时新增业务,不是跑批业务,杀掉该语句进行规避,业务侧进行语句优化或者业务流程调整

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/316655.html

(0)
上一篇 2025年10月29日 23:31
下一篇 2025年10月29日 23:33

相关推荐

发表回复

登录后才能评论