【问题现象】
在前端FIM界面上观察集大部分节点的CPU使用率持续飚高,具体情况见下图:

【问题分析】
1. 通过TOP命令查看gaussdb 进程的CPU使用率,可以观察到在CPU使用高峰的时候可以达到1000%+,当时截图没有保留,下图为示例。

2. 使用 top -H -p pid查找进程内占用的CPU百分比较高的线程。

3. 根据线程的PID找到对应的语句
select * from pgxc_thread_wait_status t1, pgxc_stat_activity a1 where t1.query_id = a1.query_id and lwtid = xxxx ;

通过上面的信息可以看到有两个长时间执行不完的查询语句导致的。
【解决办法】
- 临时将语句先kill 掉,观察集群CPU使用率明显下降。
- 对于用户调试性的语句可以配置异常规则, 设置参数statement_timeout,执行超时的语句数据库会自动给杀掉。
- 配置多租户,限制单个用户的CPU使用率,避免一个语句将所有CPU都消耗掉。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/316582.html