记一次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的处理的主要内容,如果未能解决你的问题,请参考以下文章