记一次database cpu high的处理

Posted Els0n

tags:

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

基本上,我们的数据库实例每次cpu飙升都是因read而起,很少有write导致的cpu高。这说明read,随机读,排序,都会占用cpu。而写入主要是io行为,尤其是顺序写,不需要占cpu。

今次问题,rds在三个小时内都很高,始终维持50+,最高甚至到98 。当然我们的业务可用性并不依赖rds。

观察一段时间,并没有很明显的大的慢查询。但是会有一些小查询时有时无,其实这些能被肉眼看到的就可能是问题的所在

最终定位为一个复合primary key的第二个字段单独查询太多,造成全表扫描。单独添加索引后fix。

不算太慢,查询数据量不算太多,但是十分频繁,查询量非常大,往往这类小sql会很隐蔽地把cpu搞上去。

 

以上是关于记一次database cpu high的处理的主要内容,如果未能解决你的问题,请参考以下文章

一次显式GC导致的High CPU问题处理过程(转)

开会时CPU 飙升100%同事们都手忙脚乱记一次应急处理过程

CPU使用率终于正常了——记一次订餐统事故处理

CPU使用率终于正常了——记一次订餐统事故处理

记一次tomcat程序运行慢的处理过程

TPS低,CPU高--记一次storm压测问题排查过程