dm同步MySQL到TiDB,sync节点速度很慢

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

  • 【TiDB 版本】:v4.0.0
  • 【DM 版本】:v2.0.0-rc
  • 【问题描述】:通过DM同步MySQL到TiDB,发现速度很慢,

task.yaml中syncers配置如下:
syncers:
4303-replica-01:
#worker-count: 4
worker-count: 24
#batch: 100
batch: 200
max-retry: 100
safe-mode: true

但是看起来还是只有一个worker线程在实际工作:

query-status结果如下:

麻烦帮忙排查一下,谢谢。

可以看一下 DM 监控的 binlog sync 的延迟情况是什么样的,query-status 这个显示应该还不够准确,可以通过手工查询确认一下。

方便给出表结构看一下吗

DM监控prometheus和grafana组件部署有问题,tiup 扩容 DM 失败:Error: version v4.0.3 on linux/amd64 for component prometheus not found
但是这边查看数据,确实和源库相差很大

已发,是不是和开启safe_mode:true 有关系,而且单线程replace into,效率也是极低

将 safe_mode: false 再看下同步速率

收到。“只有一个worker线程在工作”,怀疑是目前的一个bug,key索引导致dml无法并行执行。我们会在下个版本修复。

除此以外1.0版本应该没有这个问题,如果方便的话可以试试旧版:sob:

试过,这样的话还是会报:“RawCause”: “Error 1062: Duplicate entry ’ com.tmgp.* ’ for key ‘PRIMARY’” 这个错误。

了解,切换旧版本的话当前在同步的工作需要重新开始吧?

可以暂停数据同步任务,确认当前停止同步的位点后,部署 DM 1.0.x 版本,开启同步任务时,配置增量同步,从记录的位点开始同步也可以。

好的,多谢,因为这个DM涉及多个实例,这边先评估一下这个方案

:handshake::handshake::handshake: