dm 同步数据慢 大量慢log,sync 速度追不上线上

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

  • 【TiDB 版本】:v3.0.9
  • 【问题描述】:dm-同步 过程慢,大量insert 慢日志,loading完成后,sync 速度也慢,同步延迟太大

{‘tidb_log_dir’: ‘{{ deploy_dir }}/log’, ‘dummy’: None, ‘tidb_port’: 4000, ‘tidb_status_port’: 10080, ‘tidb_cert_dir’: '{{ deploy_dir }}/co

系统信息
+-----------------------+---------------------------+
|          Host         |          Release          |
+-----------------------+---------------------------+
|  tidb-pd-001-116-173  | 3.10.0-693.2.2.el7.x86_64 |
|  tidb-pd-002-116-184  | 3.10.0-693.2.2.el7.x86_64 |
| tidb-tikv-001-116-190 | 3.10.0-693.2.2.el7.x86_64 |
| tidb-tikv-002-116-191 | 3.10.0-693.2.2.el7.x86_64 |
| tidb-tikv-003-116-192 | 3.10.0-693.2.2.el7.x86_64 |
+-----------------------+---------------------------+
TiDB 集群信息
+--------------------+--------------+------+----+------+
|    TiDB_version    | Clu_replicas | TiDB | PD | TiKV |
+--------------------+--------------+------+----+------+
| 5.7.25-TiDB-v3.0.9 |      3       |  2   | 1  |  3   |
+--------------------+--------------+------+----+------+
集群节点信息
+------------+-------------+
|  Node_IP   | Server_info |
+------------+-------------+
| instance_4 |     tidb    |
| instance_1 |     tikv    |
| instance_0 |     tikv    |
| instance_3 |     tikv    |
| instance_2 |   pd+tidb   |
+------------+-------------+
容量 & region 数量
+---------------------+-----------------+--------------+
| Storage_capacity_GB | Storage_uesd_GB | Region_count |
+---------------------+-----------------+--------------+
|       2700.00       |      864.98     |    28173     |
+---------------------+-----------------+--------------+
QPS
+---------+----------------+-----------------+
| Clu_QPS | Duration_99_MS | Duration_999_MS |
+---------+----------------+-----------------+
| 4170.78 |     51.11      |      125.84     |
+---------+----------------+-----------------+
热点 region 信息
+---------+----------+-----------+
|  Store  | Hot_read | Hot_write |
+---------+----------+-----------+
| store-1 |    0     |     74    |
| store-5 |    1     |     74    |
| store-4 |    0     |     74    |
+---------+----------+-----------+
磁盘延迟信息
+--------+------------+-------------+--------------+
| Device |  Instance  | Read_lat_MS | Write_lat_MS |
+--------+------------+-------------+--------------+
|  vda   | instance_2 |     8.50    |    15.90     |
|  vda   | instance_4 |     nan     |     1.67     |
|  vda   | instance_1 |     nan     |     1.00     |
|  vda   | instance_0 |     nan     |     1.50     |
|  vda   | instance_3 |     nan     |     0.83     |
|  vdb   | instance_2 |     nan     |     1.03     |
|  vdb   | instance_4 |     nan     |     1.00     |
|  vdb   | instance_1 |     1.14    |     0.24     |
|  vdb   | instance_0 |     1.62    |     0.07     |
|  vdb   | instance_3 |     1.08    |     0.23     |
|  vdc   | instance_1 |     nan     |     nan      |
|  vdc   | instance_0 |     nan     |     nan      |
|  vdc   | instance_3 |     nan     |     nan      |
+--------+------------+-------------+--------------+

麻烦给下完整的 dm-worker 的监控截图:

  1. chrome 安装这个插件https://chrome.google.com/webstore/detail/full-page-screen-capture/fdpohaocaechififmbbbbbknoalclacl

  2. 鼠标焦点置于 Dashboard 上,按 ?可显示所有快捷键,先按 d 再按 E 可将所有 Rows 的 Panels 打开,需等待一段时间待页面加载完成。

  3. 使用这个 full-page-screen-capture 插件进行截屏保存

TiDB 以及 TiKV 的监控也麻烦导出一份看下。完整的。

  1. 根据最后一个提供的 dm-worker 的监控来看,relay 与 master 差异不大,但是 execution latency 在提供的监控时间段内比较高,所以有可能是下游 tidb 引起的同步效率不高。当然也需要关注 DM-worker 所在的机器网络是否有被打满或者网络阻塞或抖动的情况引起。
  2. 从搜集脚本以及 TiKV 机器的磁盘负载不均匀的表现有可能存在热点问题引起,具体关于热点的排查以及处理方法可以参考下: TiDB 常见问题处理 - 热点
  3. 另外在监控中发现在监控提供的时间段内有比较多的读写冲突。这部分可以在 TiDB 的日志以及 TiKV 的日志再进行分析。
  4. 由于 17:00 添加了新节点,导致集群出现了性能抖动,所以希望在后续重做当前延迟较高的 dm-worker 的 task 的时候可以提供 日志、监控、slowlog 配合统一时间进行排查。
  5. slowlog 根据提供的部分发现有大量的 update 。可以先看下这些 update 的执行计划是否符合预期。
  1. 网卡都没跑满,上面最后一个提供的是单实例库的 dm-task,重新同步的所以relay master延迟不大
  2. 热点问题有待查看
  3. 业务上还没有读,读写冲突 监控上看到了 不知道怎么冲突的
  4. 新加了俩个tikv节点,dm-task 重新同步了,同步过程大量普通的insert slowlog
  5. update 大量都是根据主键去更新的, 也抽样看过binlog及slowlog,符合预期

[问题描述]

tidb集群版本:V3.0.9

DM版本: Release Version: v1.1.0-alpha-76-g340487f

问题描述:DM同步很慢

集群拓扑:

image image

[问题分析]

  1. 查看DM监控,execution latency 延时很高

  1. 查看tidb duration延时非常高,999达到了分钟级别

  1. 查看PD TSO wait duraiton非常高达到了2s

  1. 查看tidb集群监控over-view,173上的cpu被打满,内存被耗尽,184上内存使用很少

tikv IO使用率80%,比较正常

  1. 检查dm配置,启动了至少8个dm-worker,并且每个dm-worker的 loader的pool-size 参数和 syncer的worker-count参数调整到了128.

[原因分析]

  1. 173上PD与Tidb共部署,并且这台服务器是8c 16G配置,资源不足

  2. dm配置loader和syncer的线程数太高了,8*128=1024

  3. 所有的task任务都发送到了173tidb,另一个184是空闲的

[解决方案]

  1. 173服务器用户从8c 16g改为16c 32G配置

  2. dm配置loader和syncer改为原配置,并且分步启动task,由于loader占用资源过多,等一个task结束后,再启动下一个.

  3. 调整task任务平均分配到173和184上.