更新时间:2022-10-26 GMT+08:00

磁盘性能带宽超上限

场景描述

业务侧在18:04分左右,RDS for MySQL实例业务SQL执行变慢(超过5秒),业务侧有超时返回报错。

原因分析

  1. 查看慢SQL数监控指标,发现实例的慢SQL速率在18:03分开始上涨,且最高值达到700个/秒。
    图1 慢SQL数
  2. 查看实例的CPU使用率监控指标,发现此时的CPU使用率在88%,并未达到性能瓶颈。
    图2 CPU使用率
  3. 查看实例的QPS监控指标,在18:03开始上涨到18:05有超过3倍增长,说明此时是业务的高峰期。
    图3 QPS
  4. 排查磁盘读写吞吐量监控指标,发现磁盘的吞吐量达到350MB/s,达到性能瓶颈。
    关于存储性能说明,请参见数据库实例存储类型
    图4 磁盘吞吐量

解决方案

  1. MySQL在读写业务时,查询更新请求的数据页如果不在Buffer Pool中,则需要读写底层存储的数据会产生物理I/O。可优先通过调整“innodb_io_capacity”或“innodb_io_capacity_max”参数来影响刷新脏页和写入缓冲池的速率,防止过高的I/O吞吐。
  2. 购买高性能的极速型SSD云盘,或者升级实例内存规格将更多数据缓存到Buffer Pool解决高I/O吞吐问题。