TiCDC 同步任务报错 [CDC:ErrBufferReachLimit]puller mem buffer reach size limit

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v4.0.7
  • 【问题描述】:

使用cdc 从A集群 同步数据到B集群,A集群库数据量90G,单表最大30G
创建任务命令:
tiup cdc cli changefeed create --pd=http://x.x.x.x:2379 --sink-uri=“mysql://xxxx:xxxx@x.x.x.x.x:1111/?worker-count=8&max-txn-row=5000” --changefeed-id=“test-task” --start-ts=“420905956147200000” --sort-engine=“file” --sort-dir="/data/tidb/cdc/sort"
changefeed list 报错信息:
“code”: “CDC:ErrProcessorUnknown”,
“message”: “[CDC:ErrBufferReachLimit]puller mem buffer reach size limit”

还有一个问题是机器内存256G ,cdc进程占用了15%,任务删除cdc也不释放内存,大佬们帮忙看看

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

你好,出现这个报错的原因有以下可能:

  1. cdc 追历史数据过多会出现 OOM,因为需要把历史数据都读到内存
  2. 下游同步慢也会导致出现这个问题

目测来看,你这边是由于下游同步慢导致的,目前该问题已经在做优化,建议你这边:

临时的解决可以先用 br 做一次增量备份和恢复,然后再开启 cdc 同步数据

目前是在测试cdc的稳定性及性能,那看来只能等下个版本啊,
是机器内存256G ,cdc进程占用了15%,任务删除cdc也不释放内存,这个是啥情况呢

是否有试过重启?

目前只能靠重启来释放内存,这个能优化一下不,不然太耗内存了


相关问题已经在优化中了。