在实践使用中我们也发现了这个问题,如果 TiCDC 同步流有延迟,出现重启(手动调参重启或任务自动重启)时,会有很高的瞬时 CPU 冲击,如之前遇到的一个案例在同步任务的延迟超过 20 小时后,手动重启同步流,瞬时消耗 CPU达到了 6000%(共8000%)。此时可能会带来一些额外问题,如果是和其他节点混部,可能会对集群产生冲击。
这也说明在极端场景,尤其是延迟接近 24h (GC safe point TTL)时,重启同步流会有很夸张的 CPU 瞬时冲击。这是因为 TiCDC 重启后需要重新全部获取落后的数据,重新进行落后这段时间内的变更数据拉取、排序和同步。
延迟越高,同步流重启时对节点资源消耗越多。所以,目前在官方未彻底解决这个问题之前,对于 TiCDC 同步流的延迟处理,要尽快处理