【1】问题描述
首先,查看top,下图来自网络
为什么会有%CPU 375???
还可以超过100%的? 这是因为,有多核CPU。如图,top后,按数字1,即可出现下图。
【2】排查办法(当前CPU爆高)
【2.1】查看锁情况及对应语句
SELECT * FROM information_schema.INNODB_TRX;
查看一下有没有执行时间特别长的语句,或者资源耗费特别大的。找出来优化
【2.2】查看当前运行语句
select * from information_schema.processlist where command!='Sleep';
show processlist;
查看一下有没有持续存在的语句,或者一看就觉得性能很差的语句。找出来优化
【2.3】优化一下tmp_table_size
show variables like '%tmp%';
主要是 tmp_table_size,这里的16777216=16*1024*1024=16M
可以设置高一点,比如128/256M.
set global tmp_table_size=256*1024*1024;