【TiDB 使用环境】测试
【TiDB 版本】v7.5.2
【遇到的问题:问题现象及影响】
测试环境中TiCDC同步任务状态正常,但是checkpoint停在昨天晚上"2025-04-15 22:00:17.632",TiDB主集群GC被block在该时刻。尝试重启所有的CDC节点,同步任务仍然卡住。
查看ticdc的节点日志,提示"Redo meta has not changed for a long time, owner may be stuck",配置的redo log存放到TiCDC节点本地文件系统路径下,看报错是跟redo log有关?不明白是什么原因导致该现象。
应该不是 redo 的原因,这里是因为长时间没有写入的告警信息。
卡了多长时间?期间有数据写入吗
从昨晚十点卡到了今天下午,中午我有通过sysbench写入数据,但是checkpoint_ts没有推进。尝试暂停并重新恢复同步任务、重启TiCDC服务也没有用,不确定哪种操作导致block GC未达到24h就更新为默认10min窗口,同步任务由于checkpoint_ts早于GC_safe_point失败了。
另外有个问题请教各位大佬,搭建线上业务使用TiCDC容灾的话,需要调高tidb_gc_life_time的值吗?默认10Min感觉太短了,一般推荐调高到什么时长呢?
了解下ticdc 的 gc-ttl 参数
问题复现了,其他人在主集群启动了一个TPS 5w左右的sysbench任务,该环境我测试过大于2.3w TPS后同步时延就会不断累积。
sybench任务启动时刻为09:26,同步任务卡住时刻也为09:26,表象是主集群压力超出了同步能力上限。
目前有个疑问:如果TiCDC同步能力不足后不会慢慢同步吗?将突增的业务压力拉长到更长的时间范围内,而不是阻塞在当前时刻。
同步任务阻塞状态:
两个TiCDC节点在阻塞时刻前后的log:
好的,多谢
嗯嗯,好的,感谢
你这里的 cdc 状态显示正常,应该是在同步的,你看下监控呢。
这个default看着是正常的呀,TSO 一直在推进么?
checkpoint 在压测结束几个小时后恢复推进。但是有个现象一直没有想明白:TiCDC节点同步能力上限为2.3w TPS,通过sysbench向主集群压测TPS 5w的业务压力,几分钟后发现TiCDC的sorter/mounter/sink均停止工作,puller持续进行,checkpoint停止推进。待同步任务停止时刻的checkpoint到压测结束之间的所有事务均pull完毕(TiCDC内存占用达到20GB),sorter/mounter/sink模块重新恢复工作。为什么高压力下sorter/mount/sink模块不再继续慢慢向下游同步呢?
看下 resolve ts 和 checkpoint ts 的监控呢
压测开始两分钟左右checkpoint和resolved ts就不再推进了,中间过个四五十分钟会推进几十秒一下,等到puller模块不再捕获日志,checkpoint和resolved ts开始快速推进。
这里 resolve ts 卡住,可能是 tikv 有 region 是热点,导致它不断分裂,对它的增量扫一直无法结束。