• 1
  • 2
  • 3
  • 4
  • 5
mysql数据库问题 首 页  »  帮助中心  »  数据库  »  mysql数据库问题
关于RDS主库TPS数太高造成slave延迟的解决办法
发布日期:2015-11-9 11:11:11

  关于RDS主库TPS数太高造成slave延迟的解决办法

  RDS的主实例-只读实例的架构中,只读实例出现延迟是由于主实例的TPS(insert、update、delete)过高导致的很常见的一种情况。这种情况可以通过观察主库和从库的DML操作能否同时出现峰值的现象来判断。下图相似情况可以参考:


  当我们遇到这种情况RDS这边有什么比较合适的解决办法呢?

        建议从以下几个方面考虑进行优化:

  1、只读实例应用binlog是采用单线程的SQL线程应用rely-log中的sql的。相对于主库多线程的写入操作来说,从库单线程的binlog是会相比于主库来说有一定的延迟。

        2、提升只读实例的配置:RDS上的只读实例不仅需要负载应用对于只读实例的请求,还需要通过IO线程和SQL线程拉取和应用主库的binlog,因此建议只读实例的配置最好大于或者等于主实例的配置。

     3、建议如果在这种单个实例负载很高,达到瓶颈的时候可以考虑DRDS产品对数据库进行水平切分和读写分离。这样既可在数据发生切分后消除只读实例的负载压力,也可以消除单个主实例本身的性能瓶颈。

     4、建议对于时间敏感度较高的查询的sql可以在主库上执行。这样可以不受只读实例的同步延迟的影响。但是这个需要用户在应用上完成逻辑在特定的数据库上处理。

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