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