本站承诺永不接任何虚假欺骗、联盟广告、弹窗广告、病毒广告、诱导充值等影响用户体验的广告,广告屏蔽插件会影响本站部分功能,还请不要屏蔽本站广告,感谢支持!

当前位置:首页 / 正文

12913

如何定位Mysql中CPU占用高的查询语句

编程技术 | WangTwoThree | 2022-05-05 | 1 条评论 | 0 次点赞

今天 mysql 服务器突然 CPU 告警,记录一下问题查找的过程

图片alt

第一步查看具体是哪个线程占用CPU最高

1、在 Linux 中使用 top 命令找到 mysql 进程 PID

图片alt

2、指定进程 PID,找到占用 CPU 最高的线程 ID

top -H -p PID

图片alt

3、根据操作系统线程 ID 找到对应的 mysql 线程

SELECT
    *
FROM
    `performance_schema`.threads T
WHERE
    T.THREAD_OS_ID = 线程ID

4、根据返回结果中的 PROCESLIST_INFO 等信息,来判断其执行的语句是否可以进行优化

补充

如果觉得先从分析线程入手比较麻烦,也可以直接通过查询当前正在执行的查询入手

SELECT * FROM `information_schema`.`processlist` 
WHERE COMMAND != 'SLEEP' AND TIME > 1 ORDER BY TIME DESC

直接找出当前下大执行的查询,按执行时间排序,占用CPU高的查询往往耗时也比较长


猜你喜欢

仅有一条评论

有话要说

tips:首次评论须经过审核才会显示,请不要重复提交
本页二维码

扫码手机打开

浏览TOP5
热门标签
点赞TOP5
最新评论
别人在看