更新时间:2023-06-13 GMT+08:00
RDS for MySQL性能调优-解决I/O高问题
RDS MySQL的I/O性能受硬件层存储介质、软件层数据库内核架构和具体SQL语句(扫描或修改数据量)的影响。本文介绍实例I/O高的原因和解决方案。
高吞吐导致实例I/O高
- 解决方案
建议修改当前实例参数降低读写频率或升级实例规格、优化刷新脏页相关的参数来解决高吞吐问题。和刷新脏页相关的参数如下:
innodb_max_dirty_pages_pct:缓冲池中允许的脏页百分比,默认值为75。
innodb_io_capacity:设置InnoDB后台任务每秒执行的I/O操作数的上限,影响刷新脏页和写入缓冲池的速率。不同磁盘类型默认值不同。
innodb_io_capacity_max:如果刷新操作过于落后,InnoDB可以超过innodb_io_capacity的限制进行刷新,但是不能超过本参数的值。默认值为40000。
临时表导致实例I/O高
- 解决方案
在RDS控制台的慢日志页面,下载并查看执行缓慢的SQL,通过分析慢SQL的执行耗时等信息,从而优化SQL。
- 下载慢日志的操作,请参见查看或下载慢日志。
- 优化慢SQL的操作,请参见MySQL慢SQL问题定位。
读取冷数据导致实例I/O高
- 解决方案
根据业务场景重新设计缓存策略,或者升级实例规格。
大事务写Binlog导致实例I/O高
父主题: 性能调优