57AliYun阿里云最新优惠活动
阿里云优惠码丨阿里云代金券

阿里云数据库教程–Mysql版RDS CPU占用过高(长时间100%)的处理办法

立即购买

阿里云服务器 ¥74元/年 现在购买还送云数据库1年 限时

个人、企业均可购买 | 更多配置0.8折特惠

在某些情况下,我们的RDS会出现CPU性能100%的情况。如下图显示:

问题原因:

一般情况下,系统提交到数据库的查询执行需要大量逻辑读的话,会消耗RDS大量的CPU资源。

用一个简化的模型来描述:
avg_lgc_io:每条查询执行需要的平均逻辑 IO
total_lgc_io:实例 CPU 资源单位时间能够处理的 逻辑IO 总量
total_lgc_io = avg_lgc_io x QPS -- 单位时间 CPU 资源 = 查询执行平均成本 x 单位时间执行的查询数量

根据以上公式,我们列出了两种典型导致RDS CPU占用高的情景。

  1. 应用负载过高(QPS)
    特征:实例的 应用负载(每秒执行的查询次数QPS)高,查询效率较高、此种情况优化余地小。
    表现:在RDS的优化建议内没有出现慢SQL,且QPS 和 CPU 使用率曲线变化吻合。
    CPU:QPS:
    RDS实例诊断报告内没有慢SQL:
  2. 查询效率低(平均逻辑IO过高)
    特征:RDS实例的负载(每秒执行的查询次数QPS)并不高;但单语句查询执行效率低、需要扫描大量表中数据、此种情况优化余地较大。
    表现:实例诊断报告内存在慢查询,QPS和CPU使用率曲线变化不吻合。
    查询效率低,单次查询需要访问大量的数据(平均逻辑IO高),在 QPS 并不高的情况下(例如网站并发不高的情况下),导致实例的 RDS的CPU使用率高。

解决办法:

无论是何种原因导致的CPU使用量过高,请一定参考实例诊断报告。该工具可以最快捷解决一些RDS常见性能问题,尤其建议关注诊断报告的 “SQL优化”、”会话列表”、”慢SQL汇总”  部分。

针对QPS过高的优化方法:

此种情况下,优化SQL的性能作用不会太大,建议从系统构架,实例规格方面入手。

  • 升级RDS实例规格,提升系统QPS负载。
  • 对于查询数据比较静态、查询重复度高、查询结果集小于 1 MB 的应用,考虑开启查询缓存(Query Cache)。
  • 将系统读写分离,增加只读实例,将对数据一致性不敏感的查询转移到只读实例上,分担主实例压力。
  • 定期归档历史数据、采用分库分表或者分区的方式减小查询访问的数据量。
  • 使用阿里云Memcache或者云Redis产品,将常用的数据放入缓存读取,减轻 RDS 实例压力。
  • 尽量优化查询,减少查询的执行成本(逻辑IO,执行需要访问的表数据行数),提高应用可扩展性。
  • 使用阿里云DRDS产品,自动进行分库分表,将查询压力分担到多个 RDS 实例上。
赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。邮箱:[email protected],本站原创内容未经允许不得转载,如需转载,请注明:吾趣阿里云网 » 阿里云数据库教程–Mysql版RDS CPU占用过高(长时间100%)的处理办法
  • 阿里云
    基础型云服务器

    1核CPU

    2G内存

    40G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、个人站长类网站

    ¥89/1年 原价¥903.40

  • 阿里云
    超值型云服务器

    2核CPU

    4G内存

    40G硬盘

    3M带宽

    独立IP

    分布式存储

    适合企业官网、行业门户类网站

    ¥899/3年 原价¥8281

  • 阿里云
    高性能云服务器

    2核CPU

    8G内存

    40G硬盘

    5M带宽

    独立IP

    分布式存储

    适合电商、数据库等企业级应用

    ¥1399/3年¥14765

评论 抢沙发

评论前必须登录!

 

00 Days
00 Hrs
00 Mins
00 Secs
阿里云服务器102元/年,现在购买还免费送云数据库、对象存储
立即查看