• 1
  • 2
  • 3
  • 4
  • 5
mysql数据库问题 首 页  »  帮助中心  »  数据库  »  mysql数据库问题
关于RDS MySQL IOPS 使用率高的原因和处理事项
发布日期:2015-11-7 12:11:29

  关于RDS MySQL IOPS 使用率高的原因和处理事项

  通常来说,RDS MySQL 实例在日常使用中有时会出现实例 IOPS 使用率高的情况,比如:

  

  通常来说,RDS MySQL 实例在日常使用中有时会出现实例 IOPS 使用率高的情况,比如:

  1. 原因

  查询执行效率低,扫描过多数据行。

        实例内存不能够满足缓存数据或排序等需要,从而导致产生大量物理IO。

  2. 解决办法

  可以通过下面2种途径中的1种来处理IOPS使用率高的问题,也可以结合使用。

  生成实例当前诊断报告(推荐方式),具体操作如下:

  DMS =》实例信息 =》实例会话 或者 show full processlist; 查看正在运行的查询,通过SQL窗口优化功能优化查询。

  2.1 诊断报告

  在DMS中生成当前的实例诊断报告,查看其中的 会话列表、SQL优化、慢SQL汇总部分,建议应用SQL优化给出的意见。如下图所示:


        会话列表:


        SQL优化:


  慢SQL汇总:


  建议应用SQL优化给出的意见: 在表 large_tab_03 字段 col01 上添加索引 - alter table large_tab_03 add index idx_col01(col01)。

  索引添加完毕后,查询执行快速完成,IOPS使用率降低。如下图:


  注:

  1. 添加索引操作建议在业务低峰期进行;如果添加过程中出现等待表元数据锁的情况,请参考:RDS MySQL 表上 Metadata lock 的产生和处理

        2. 在SQL优化没有直接给出建议的情况下,需要结合会话列表、慢SQL汇总的信息进行查询优化。

  2.2 实例会话和SQL优化

  有时候会出现 实例诊断报告不可用 或者无法立刻应用其建议的情况,我们可以可以先通过 DMS =》实例信息 =》实例会话 来终止问题查询(需要应用方面首先停止提交问题查询,441111否则会出现不断终止、不断出现的情况)。如下图:


  也可以通过命令 show processlist; 或 show full processlist; 来查看会话情况,通过 kill 命令来终止问题查询。如下图:


  如果当前执行会话比较对,可以通过 show full processlist; 来确定问题会话,如下图:


  附加:为了方便阅读,上图省却了部分命令输出信息。

  可以考虑将物理读(Physical_sync_read 和 Physical_async_read)高的查询终止掉。

  也可以通过 SQL窗口的优化功能,获取相关查询优化建议。

  如问题还未解决,请联系售后技术支持。