操作场景
在 DTS 数据同步任务配置中,或者任务运行中,可根据源库的数据写入量,源库和目标库的资源配置,来灵活调整任务并发数和 RPS。
说明:
适用范围
数据同步:MySQL/MariaDB/Percona/TDSQL-C MySQL/TDSQL TDStore 相互之间的链路。
注意事项
1. 在任务配置阶段,或者当任务状态为“运行中”时,才能进行限速操作。
2. 降低任务速率时,请注意观察延迟数据量和延迟时间,DTS 默认只缓存7天的中间数据,长期延迟量过大,可能导致中间缓存数据过期,任务彻底失败。
3. 全量导出阶段调整速率会导致任务重启,部分重启场景任务需要从头开始同步,具体如下。增量阶段调整速率也会发生任务重启,但对数据传输无影响。
主键冲突策略选择“冲突报错”的任务,默认走有锁同步。在有锁同步场景中,重启任务后需要从头开始同步。
主键冲突策略未选择“冲突报错”的其他任务,默认走无锁同步。在无锁同步场景中,在结构导出阶段、无主键表导出阶段,重启任务需要从头开始同步;在有主键表导出阶段,重启任务会接续同步,无需从头开始。
4. 如果用户初次修改了限速中的全量速率参数(全量导出线程数据和 RPS,全量导入线程数和 RPS),后续进行修改同步对象操作时,会先跳转到限速参数调整界面,建议用户将全量速率参数尽量调大一些(根据源和目标库负载情况综合判断),避免新追加对象后,对新对象的全量同步耗时较久
调整原则
DTS 任务全量导出并发线程数默认为8,一般情况下不需要修改。如遇需要调整,请结合监控指标,源库/目标库配置,在不影响源库/目标库性能的前提下,最大程度提升 DTS 传输速率。
DTS 传输性能与源/目标库的配置、DTS 任务规格、网络延迟、网络带宽等都有关系,所以提升 DTS 传输性能时,单独的调增大整线程数,或增大 RPS,不一定有效,需要分析性能瓶颈在哪个环节,针对具体问题具体解决。
任务阶段 | 调整场景 | 调整方案 | 调整结果 |
任务配置阶段 | 源库配置太低,无法承担 DTS 增加的负载,在 DTS 任务启动后源库出现崩溃。 | 减小源库导出线程数,降低源库导出 RPS。 | 有效。 |
| 目标库配置太低,无法承担 DTS 增加的负载,在 DTS 任务启动后目标库出现崩溃。 | 减小目标库导入线程数,降低目标库导入 RPS。 | 有效。 |
全量阶段 | 源库/目标库配置高,DTS 全量传输速率慢 | 如果源库配置高,增大源库导出线程数 如果目标库配置高,增大目标库导入线程数。 全量阶段默认 RPS 非常大,提升传输速率时一般不需要调整 RPS。 | 不一定有效。 如果调整后未生效,请排查网络延迟,带宽等因素,因为这些也会影响传输性能。 |
| 目标库配置低,DTS 写入目标库速度太快,对目标库负载产生影响(如 CPU 占用率高) | 减小目标库导入线程数,降低目标库导入RPS。 | 有效。 |
增量阶段 | 源库配置高,源库写入数据量大,网络延迟大 | 如果 RPS 已达上限,则先升级 DTS 任务规格(通过变配操作实现)。 | 如果升级任务后未生效,请排查网络延迟,带宽等因素,因为这些也会影响传输性能。 |
| 目标库配置低,DTS 写入目标库速度太快,对目标库负载产生影响(如CPU 占用率高) | 1. 降低 DTS 任务规格。 2. 减小目标库导入并发线程数。 | 有效。 |
| 目标 Kafka 配置低,DTS 写入目标库速度太快,对目标库负载产生影响 | 在同步到 Ckafka 的链路中,遇到写入速率太快,降低目标端写入 RPS 和线程数效果可能不显著,请先调整 CKafka 带宽和分区数。 1. 提高 CKafka 网络带宽配置。 2. 调整 Ckafka 的分区数,多个分区可以并发写入,提升写入 Ckafka 的速率。 | 有效。 |
| 目标库配置低,DTS 连接数过多,目标库线程达上限 | 降低目标库导入线程数。 | 有效。 |
| DTS 写入到目标库,与目标库本身的写入产生锁争抢(例如 Lock wait timeout 错误) | 降低目标库导入线程数,减少锁竞争。 | 有效。 |
任务配置中限速
同步任务初始配置阶段,在设置同步选项和同步对象页面的高级选项中,可设置传输速率参数。
任务运行中限速
任务在全量数据同步阶段进行限速操作,可以修改全量+增量的速率参数(全量导出线程数和 RPS,全量导入线程数和 RPS,增量导入线程数);任务在增量数据同步阶段进行限速操作,仅可修改增量的速率参数(增量导入线程数),具体操作参考如下。
1. 登录 DTS 控制台,在左侧导航选择数据同步页,选择指定的同步任务。
2. 在全量数据同步阶段进行限速操作。
在操作列选择更多 > 限速。
在弹出的界面调整速率参数,完成后单击确定。
3. 在增量数据同步阶段进行限速操作。
在操作列选择更多 > 限速。