【 TiDB 使用环境】生产环境 /测试
【 TiDB 版本】5.4.0,CDC版本为5.4.3
【复现路径】压测复现
【遇到的问题:问题现象及影响】
TiCDC 延迟很高,会在某一时刻突然降低延迟,然后恢复正常。写入的速率一直不符合预期,日志提示flush太慢,查看下游 mq 负载不高
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
集群资源的负载,还有 ticdc 节点的负载都正常么?
tidb 日志搜 BIG_TXN
是周期性的吗?
业务上在此时间有变化没有
集群负载不高,压测昨天停止了,这是CDC的
是压测发现的,业务上什么动作都没有,昨天启动压测发现延迟很高后就停止压测。今天早上突然延迟就降低了,期间没做任何操作
这个问题和业务沟通过,让他们压测不要一次插入太多。昨天的压测没出现过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-interval
、raft-log-gc-tick-count
等参数。 - 优化 TiCDC 配置:
- 调整 TiCDC 的并发度,适当增加
max-message-bytes
和batch-size
等参数。 - 如果使用了 MQ,可以考虑增加 MQ 的消费者数量,提高消费速度。
- 调整写入速率:
- 如果写入速率不符合预期,可以尝试降低写入压力,或者优化写入模式,比如批量写入而非单条写入。
- 硬件升级:
- 如果资源配置不足,考虑升级硬件,尤其是磁盘 I/O 和网络带宽。
除了事务,还观察下cdc中线程配置大小和内存使用是否合理吧