当业务压力过大时,备DN的回放速度跟不上主DN的速度如何处理
问题描述
当业务压力过大时,备DN的回放速度跟不上主DN的速度。在系统长时间的运行后,备DN上会出现日志累积。当主DN故障后,数据恢复需要很长时间,数据库不可用,严重影响系统可用性。
解决方案
GaussDB提供极致RTO能力,开启极致RTO(Recovery Time Object,恢复时间目标),可以减少主DN故障后数据的恢复时间,提高了可用性。
如需使用极致RTO能力,您可以在管理控制台右上角,选择工单 > 新建工单,提交开通申请。
注意事项
- 极致RTO只关注存在主备同步的备DN的RTO是否满足需求。极致RTO去掉了自带的流控,统一使用recovery_time_target参数来做流控控制。
- 极致RTO采用了多个page redo线程并行加速回放进度。当备DN回放追平主DN,空载的情况下,单个page redo线程的CPU消耗大约在15%左右(实际值与具体硬件和参数配置相关),备DN回放的总CPU消耗值 = 单个page redo线程的CPU消耗值 x page redo线程数。因为启动的更多的线程,CPU和内存的消耗都会比并行回放、串行回放要多。
- 极致RTO支持备机读,由于增加了对数据页面历史版本的读取,备DN上的查询性能会低于主DN上的查询性能,低于并行回放备机读的查询性能,但是查询阻塞回放的情况有所缓解。
- DDL日志的回放速度远远慢于页面修改日志的回放,频繁DDL可能导致主备时延增大。
- 当节点的I/O和CPU使用过高时(建议不超过70%),回放和备机读性能会有明显下降。