数据同步增量阶段延迟较高
本文介绍使用 CloudCanal 创建同步任务后增量任务延迟的排查方法。
简述
增量任务延迟,常见原因有3种:
- 源端写入压力大,工具或者对端数据源写入不给力
- 任务因各种原因报错,无法同步数据
- 源端无任何变更,也没有心跳事件
- 任务规格设置较小或者源端迁移同步的数据量过大导致任务进程 GC 严重(例如遇到源端变更峰值或者同步内容包含大字段) 针对这3种可能的原因,可以通过以下步骤进行排查。
排查步骤
- 如下图所示进入控制台,选择 监控管理>异常监控 ,选择任务异常选项卡。
- 根据发生时间查看最近是否有任务异常,如有,则可能是任务异常报错导致延迟增大,任务报错常见原因:
- 对端写入异常报错,例如:主键冲突,对端写入超时,对端写入过程处理异常等
- CloudCanal 内部异常,同步过程出现不支持的场景 根据报错日志无法自主定位原因,请加群反馈问题。
- 步骤2如果没有任务异常,如下图所示,请打开任务详情,观察位点信息是否正常向前更新,如正常向前更新,说明任务正常执行同步,需排查数据延迟是否是对端写入问题导致。
- 如下图所示,进入任务详情-查看日志,观察日志中 real 值,如果长时间为0,则源端没有增量以及心跳(参考心跳功能配置),如果几百上千,则说明流量较大,需要进行性能调优。
- 如下图所示,查看任务详情页监控图表上的更多,新的页面选择任务资源监控>任务 JVM GC 数。如果曲线观察到FGC数量不为0,表明需要增大任务规格或者优化参数。
- 如FGC 过多,如下图所示,请进入 任务详情>功能列表>参数修改,搜索参数 specId,可以调整选择更大的规格。
- FGC 过多时,还可以对进行其他参数调整,步骤如下:进入 任务详情>功能列表>参数修改。
- 任务处于增量阶段则搜索 increRingBufferSize、increBatchSize 参数,将原有值调节小一点,避免一次性同步太多数据导致 FGC
- 任务处于全量阶段则搜索 fullRingBufferSize、fullBatchSize 参数,将原有值调节小一点,避免一次性同步太多数据导致 FGC
- 如果上述步骤无法自助解决问题,请加群提问,请描述问题背景并提供报错日志或截图。