为了账号安全,请及时绑定邮箱和手机立即绑定

阿里云RDS实例CPU超过100%

标签:
MySQL


  问题:收到报警说是RDS实例的CPU满负荷,实例偶尔出现卡住的现象

      分析: cpu消耗过大有慢sql造成,慢sql包括全表扫描,扫描数据量太大,内存排序,磁盘排序,锁争用等

    通常这种情况都是由于sql性能问题导致的,查看云监控发现

wKioL1YZMnzDm3TFAAE38j32v3o784.jpg

查看慢查询SQL运行报告发现好多慢查询语句:

wKioL1YZM57CJmBpAAVKFiRbIO4243.jpg

找开发确定一下,优化下SQL语句。

在阿里云官方文档查找到了一下分析原因(参考)

   

1.

表的现象sql执行状态为:sending data,copying to tmp table,copying to tmp table on disk,sorting result,using filesort,locked;

2.解决方式:登陆数据库,show processlist查看当前正在执行的sql,当执行完show processlist后出现大量语句,通常

状态如条1所写,sql有性能问题

a.sending data:sql正从表中查询数据,如果查询条件没有适当索引,会导致sql执行时间过长

b.copying to tmp table on disk:因临时结果集太大,超过数据库规定的临时内存大小,需要拷贝临时结果集到磁盘上

c.sorting result,using filesort:sql正在执行排序操作,排序操作会引起较多的cpu消耗,可以通过添加索引,或

减小排序结果集

不同的实例规格iops能力不同,如,iops为150个,也就是每秒能够提供150次的随机磁盘io操作,所以如果用户的数据量

很大,内存很小,因iops的限制,一条慢sql就有可能消耗掉所有io资源,而影响其他sql查询,对于数据库就是所有的sql

需要执行很长时间才返回结果集,对于应用会造成整体响应变慢。

©著作权归作者所有:来自51CTO博客作者wyy962653920的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消