使用dm 同步 mysql-->tidb 延迟问题

【 TiDB 版本】5.4.1
【 DM 版本】5.4.1
【遇到的问题】
dm同步上游mysql5.7到tidb,延迟总是在5s内上下波动,不像原生mysql主从延迟比较稳定。测试环境数据量和并发也不大。
请问这个是正常现象,还是有优化空间?

dm-task.yaml
# 任务名称,需要全局唯一
name: "my2tidb_xxx"

# 任务模式,可设为 "full"、"incremental"、"all"。all表示全量+增量
task-mode: all    

# 下游储存 `meta` 信息的数据库,同步位点信息存放在表 xxxx_syncer_checkpoint
meta-schema: "dm_meta"         

#是否大小敏感
case-sensitive: false    

#online DDL
online-ddl: true          # 支持上游 "gh-ost" 、"pt" 的自动处理
#online-ddl-scheme: "pt"   # `online-ddl-scheme` 在未来将会被弃用,建议使用 `online-ddl` 代替 `online-ddl-scheme`


# 下游数据库实例配置
target-database:       
  host: "172.20.99.158"
  port: 4000
  user: "root"
  password: "zLHo4i9gnUshZyPgIKZvXECpFxInJEA="         # 推荐使用经过 dmctl 加密的密文
  max-allowed-packet: 67108864                         # TiDB默认 67108864 (64 MB)


#黑白名单配置
block-allow-list:                     # 上游数据库实例匹配的表的 block-allow-list 过滤规则集
  bw-rule-1:                          # 黑白名单配置的名称
    do-dbs: ["xxx",]             



mydumpers:                           # dump 处理单元的运行配置参数
  global:                            # 配置名称
    threads: 4                       # dump 处理单元从上游数据库实例导出数据的线程数量,默认值为 4
    chunk-filesize: 64               # dump 处理单元生成的数据文件大小,默认值为 64,单位为 MB
    extra-args: "--consistency none" # dump 处理单元的其他参数,不需要在 extra-args 中配置 table-list,DM 会自动生成
    
loaders:                             # load 处理单元的运行配置参数
  global:                            # 配置名称
    pool-size: 16                    # load 处理单元并发执行 dump 处理单元的 SQL 文件的线程数量,默认值为 16,当有多个实例同时向 TiDB 迁移数据时可根据负载情况适当调小该值
    dir: "./dumped_data"             # dump 处理单元输出 SQL 文件的目录,同时也是 load 处理单元读取文件的目录。该配置项的默认值为 "./dumped_data"。同实例对应的不同任务必须配置不同的目录
    
syncers:                             # sync 处理单元的运行配置参数
  global:                            # 配置名称
    worker-count: 16                 # 应用已传输到本地的 binlog 的并发线程数量,默认值为 16。调整此参数不会影响上游拉取日志的并发,但会对下游产生显著压力。
    batch: 200                       # sync 迁移到下游数据库的一个事务批次 SQL 语句数,默认值为 100,建议一般不超过 500。
    enable-ansi-quotes: true         # 若 `session` 中设置 `sql-mode: "ANSI_QUOTES"`,则需开启此项
    
    
# ----------- 实例配置 -----------    
mysql-instances:                      
  - source-id: "mysql-xxx"       # 上游实例,即MySQL source_id
    block-allow-list:  "bw-rule-1"    # 黑白名单配置名称
    mydumper-config-name: "global"          # mydumpers 配置的名称
    loader-config-name: "global"            # loaders 配置的名称
    syncer-config-name: "global"            # syncers 配置的名称

Pictures20220617110016.bmp (2.8 MB)

syncers的worker-count调大一点试试

调到 32了。 没有明显的效果。

dm 同步 mysql—>tidb延迟的原因是什么 ?tidb在小批量数据变更效率没有mysql 快,所以导致延迟么

出现延迟要么就是下游TiDB存在性能瓶颈,要么就是DM的当前配置存在吞吐量不够的情况,可参考如下SOP进行分析,特别注意开头提到的那几个监控指标

dm同步是有延时体验的 同时还有其他问题 慢慢体会

还是主要看你能不能接受这个延迟,