TiCDC 延迟很高,在某一时刻突然恢复正常

【 TiDB 使用环境】生产环境 /测试
【 TiDB 版本】5.4.0,CDC版本为5.4.3
【复现路径】压测复现
【遇到的问题:问题现象及影响】
TiCDC 延迟很高,会在某一时刻突然降低延迟,然后恢复正常。写入的速率一直不符合预期,日志提示flush太慢,查看下游 mq 负载不高
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】


集群资源的负载,还有 ticdc 节点的负载都正常么?

tidb 日志搜 BIG_TXN

是周期性的吗?
业务上在此时间有变化没有

集群负载不高,压测昨天停止了,这是CDC的
image

是压测发现的,业务上什么动作都没有,昨天启动压测发现延迟很高后就停止压测。今天早上突然延迟就降低了,期间没做任何操作

这个问题和业务沟通过,让他们压测不要一次插入太多。昨天的压测没出现过BIG_TXN,还是有问题。tidb日志里面有很多这个错误,和这个有关么

[ERROR] [terror.go:307] ["encountered error"] [error="read tcp 10.142.28.29:5000->10.149.44.1:40913: read: connection reset by peer"] [stack="github.com/pingcap/tidb/parser/terror.Log\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/parser/terror/terror.go:307\ngithub.com/pingcap/tidb/server.(*Server).onConn\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/server/server.go:516"]

不如考虑升级,V6版本的CDC性能很抗打

感觉是源端有大事务啊

V6版本兼容5.4.0的TiDB么?推荐用哪个版本号呀,6.0还是6.6?

insert也会造成大事务么

你压测中如果有大量的insert,肯定会有IO压力,就会导致CDC复制延迟啊。
另外,如果压测中的insert语句,如果有多行提交的,肯定事务又多又大了,延迟自然就来了。

主要是停掉压测后,同步还是很慢,dataflow 里面的各种量都挺低的,下游负载也不高。查了日志也没有 BIG_TXN

集群版本6.5以上推荐使用CDC,6.5以下推荐binlog

压测?现在还是在 POC 阶段么?建议用7.1的最新版本来测试,别用5.X 的版本来测试了,6.X 版本 TiCDC 性能提升了很多

ticdc低版本 不咋地。之前使用过,时不时有问题出现。同步时效差。现在升到6.5.x了 下阶段需要用到ticdc。希望如大家说的性能高高高。

本来线上跑的是5.4.0,遇到死锁问题了,打算升到5.4.3解决一下,没想到还是有问题。明天打算测一下6.5.9的,7.1比较担心的问题是跨两个大版本会有不兼容问题

用第三方同步工具

  • 优化 TiKV 配置
  • 根据监控数据调整 TiKV 的配置参数,如提高 raft-base-tick-intervalraft-log-gc-tick-count 等参数。
  • 优化 TiCDC 配置
  • 调整 TiCDC 的并发度,适当增加 max-message-bytesbatch-size 等参数。
  • 如果使用了 MQ,可以考虑增加 MQ 的消费者数量,提高消费速度。
  • 调整写入速率
  • 如果写入速率不符合预期,可以尝试降低写入压力,或者优化写入模式,比如批量写入而非单条写入。
  • 硬件升级
  • 如果资源配置不足,考虑升级硬件,尤其是磁盘 I/O 和网络带宽。

除了事务,还观察下cdc中线程配置大小和内存使用是否合理吧