MySQL所有的压力都在一个CPU核心上,为什么会产生这种现象,改如何解决?

MySQL所有的压力都在一个CPU核心上,为什么会产生这种现象,改如何解决?


一、为什么会产生这种现象?
    事实上,并不是所有压力都在一个逻辑CPU上,其实是因为MySQL还不支持并行计算,因此一个会话中的SQL只会被分配到一个逻辑CPU上。
    之所以出现这种现象,大概率是因为下面几种情况:
        1、某个会话中正在执行慢SQL,尚未结束。
        2、某个会话中的SQL开启了大事务,并且持有很多行锁或等待很多行锁,该事务尚未结束。


二、如何解决?
    1、检查是否有慢SQL,并进行优化。
    2、尽量不使用大事务,拆分成小事务。
    3、记住老司机的名言,当mysqld进程消耗CPU很高时,极大概率是有些SQL没索引导致。
    4、也可以尝试用perf top工具来排查具体什么原因导致。

 

posted @ 2020-06-17 15:46  捧花大王  阅读(347)  评论(0编辑  收藏  举报