前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >如何快速查找占用CPU过高的SQL

如何快速查找占用CPU过高的SQL

作者头像
MySQL数据库技术栈
发布2022-05-25 14:40:54
发布2022-05-25 14:40:54
1.8K00
代码可运行
举报
运行总次数:0
代码可运行

面对数据库服务器CPU飙升的场景,我们该如何快速定位问题?又该如何快速找到具体是哪个SQL引发的CPU异常呢?下面我们说两个方法。

方法1:通过pidstat命令定位

1.首先我们先找到mysqld进程的PID,然后执行pidstat -t -p $PID,结果如下图:

2.进入mysql交互命令,通过以下命令查询具体SQL。

代码语言:javascript
代码运行次数:0
复制
 select * from performance_schema.threads where thread_os_id = '104570';

3.查看该SQL执行计划:explain PROCESSLIST_INFO;

方法2:通过TOP命令定位

1.首先执行TOP命令,输入H,可以按照显示线程状态。

2.输入P,可以按照cpu的使用时间份额进行排序,这时候我们就可以看下是否有超过70%-90%以上的线程了。

3.登录mysql,执行以下命令

代码语言:javascript
代码运行次数:0
复制
select * from performance_schema.threads where THREAD_OS_ID=4461 \G
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL数据库技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档