mysql cpu100% 排查

Posted QQ_851228082

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql cpu100% 排查相关的知识,希望对你有一定的参考价值。

前言

mysql 查看cpu100%的流程也是固定的,先通过show full processlist或者information_schema.processlist查看info字段有值的线程,一般来说都是sql堆积导致cpu 100%,以下是具体方法

查看mysql线程

有两种方法查看mysql线程,第一个方法show full processlist,第二方法information_schema.processlist,这两种查询结果是一样的,查表更方便一些,因为可以过滤字段。

  • show full processlist;查看所有mysql线程(connection),如果不加full,则查看前100条。
    或者
  • select * from information_schema.processlist where info!='';
    找到info里有数据的记录,查看state,如果状态不变并持续了很多秒,那么大概率是问题所在。
    如果情况紧急,可以使用kill id来杀死线程,因为一个线程对应一个connection,所以杀死线程就是杀死connection。
    还可以看看正在执行的失误,排除一下可能性。
    select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx;

我遇到的cpu 100%情况

我遇到的mysql cpu100%都是因为定时任务导致sql累积,多个线程执行同一sql导致的。

以上是关于mysql cpu100% 排查的主要内容,如果未能解决你的问题,请参考以下文章

三步排查JVM cpu 100%问题

如何排查java进程cpu100%的问题

谈谈线上CPU100%排查套路

Java死锁排查和Java CPU 100% 排查的步骤整理

一次生产CPU100%问题排查

一次生产CPU100%问题排查