限速(MySQL 系列)

最近更新时间:2024-04-10 15:37:11

我的收藏

操作场景

在 DTS 数据迁移任务配置中,或者任务运行中,可根据源库的数据写入量,源库和目标库的资源配置,来灵活调整任务并发数和 RPS。
说明:
本文仅提供了 DTS 性能参数的操作指导,如果您需要全面提升 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. 在增量数据迁移阶段进行限速操作。
操作列选择更多 > 限速