问题描述
gaussdb进程持续占CPU过高,需找到占用CPU过高的sql语句
问题处理
- 找一个gaussdb进程,确认进程号和对应dn的端口号(进程号32089)
- 执行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
- 连续执行多次,发现占用CPU高的线程没有变过
- 连接到此dn(注意端口号搞对)
- select query_id from pg_thread_wait_status where lwtid = 10596;
查到query_id 为95174458
- select * from pg_stat_activity where query_id = 95174458;
即可查到对应语句
- 和客户业务侧确认,该语句是临时新增业务,不是跑批业务,杀掉该语句进行规避,业务侧进行语句优化或者业务流程调整
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/316655.html