首页 > 技术文章 > 记一次database cpu high的处理

elsonwe 2017-09-11 23:50 原文

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

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

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

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

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

 

推荐阅读