前言
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导致的。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/3725.html