0
点赞
收藏
分享

微信扫一扫

MySQL CPU使用率飙升,如何定位是被谁占用了

云朵里的佛光 2022-07-18 阅读 21

当有时发现系统反应慢,查看MySQL进程的CPU使用率超出了平常水平的几倍,接下来介绍如何定位。

如下图,MySQL的CPU使用率高,负载亦高

MySQL CPU使用率飙升,如何定位是被谁占用了_mysql

通过 top -Hp 1308 命令查看MySQL进程中哪些线程占用了较高的CPU资源

MySQL CPU使用率飙升,如何定位是被谁占用了_mysql_02

接下来,我们要确定上面那些CPU占用高的是什么线程,它们在做什么?

执行以下SQL:

SELECT a.THREAD_OS_ID,b.user,b.host,b.db,b.command,b.time,b.state,b.info

FROM performance_schema.threads a, information_schema.processlist b

WHERE b.id = a.processlist_id And b.command !='Sleep'

这里可以清楚的看到线程在做什么事

MySQL CPU使用率飙升,如何定位是被谁占用了_mysql_03

我们发现通过top -Hp pid 查到的线程与上面存在一一对应情况。这时我们定位到了是seata相关的分布式事务引起了MySQL占用了大量的CPU资源。下一步交由相关负责人处理。




举报

相关推荐

0 条评论