tencent cloud

数据传输服务

动态与公告
产品动态
公告
产品简介
产品概述
数据迁移功能描述
数据同步功能描述
数据订阅(Kafka 版)功能描述
产品优势
支持的地域
规格说明
购买指南
计费概述
变更配置说明
欠费说明
退费说明
快速入门
数据迁移操作指导
数据同步操作指导
数据订阅操作指导(Kafka 版)
准备工作
业务评估
网络准备
添加 DTS IP 地址至对接数据库白名单
DTS 服务权限准备
数据库及权限准备
配置自建 MySQL 系的 Binlog
数据迁移
数据迁移支持的数据库
云数据库跨账号实例间迁移
迁移至 MySQL 系列
迁移至 PostgreSQL
迁移至 MongoDB
迁移至 SQL Server
迁移至腾讯云分布式缓存数据库
任务管理
数据同步
数据同步支持的数据库
云数据库跨账号实例间同步
同步至 MySQL 系列
同步至 PostgreSQL
同步至 MongoDB
同步至 Kafka
任务管理
数据订阅(Kafka 版)
数据订阅支持的数据库
MySQL 系列数据订阅
TDSQL PostgreSQL 数据订阅
MongoDB 数据订阅
任务管理
消费管理
前置校验不通过处理方法
检查项汇总
割接说明
监控与告警
支持的监控指标
告警通知功能
通过控制台配置指标告警和事件告警
通过 API 配置指标告警和事件告警
运维管理
配置系统维护时间
任务状态扭转说明
实践教程
本地数据库同步上云
构建双向同步数据结构
构建多对一同步数据结构
构建多活数据中心
数据同步冲突策略如何选择
使用 CLB 代理将其他账号下的数据库迁移至本账号下
通过云联网方式迁移自建数据库至腾讯云数据库
DTS 性能调优最佳实践
常见问题
数据迁移
数据同步
数据订阅 Kafka 版常见问题
数据订阅正则表达式
错误处理
常见错误处理
连通性测试不通过
校验项结果不通过或者出现警告
云联网接入配置源数据时无法选择子网
迁移慢或者进度卡住
数据同步有延时
数据订阅延迟过高
数据消费异常
API 文档
History
Introduction
API Category
Making API Requests
(NewDTS) Data Migration APIs
Data Sync APIs
Data Consistency Check APIs
(NewDTS) Data Subscription APIs
Data Types
Error Codes
DTS API 2018-03-30
相关协议
服务等级协议
文档数据传输服务实践教程DTS 性能调优最佳实践

DTS 性能调优最佳实践

PDF
聚焦模式
字号
最后更新时间: 2024-09-10 17:33:06
本文为您介绍在不同场景下,提升 DTS 传输速率的操作指导。

影响传输性能因素

1. 源/目标端的规格配置:DTS 传输时会增加源/目标端的负载,如果负载较高会导致传输性能下降。针对源/目标端本身规格配置较低的场景,可以适当降低 DTS 的传输速率。
2. DTS 的传输参数配置:DTS 任务传输的 RPS 和并发数可以灵活配置,一般情况下,默认参数不需要修改。如果设置不合理会导致性能受限。
3. 源到目标端的网络带宽、延迟:源端和目标端之间的网络需要连接稳定,无网络延迟和丢包。
选择“公网”接入方式时,因公网环境下带宽无法保证,网络可能会成为传输瓶颈,建议选择“专线接入”或“VPN 接入”,提高网络质量。
选择“云联网”接入方式时,云联网仅提供所有地域间 10Kbps 以下的免费带宽,使用 DTS 对正式的业务数据进行传输时,需要付费来选择更高的带宽。
跨地域传输的延迟会高于同地域。DTS 任务实例的归属地域,需要与目标实例地域保持一致,否则延时会增大。同时,如果是自建数据库,需要就近选择 DTS 地域进行传输。
4. 源端的数据问题:源端本身的数据内容不符合 DTS 规范(如有较长时间的 SQL 在运行、无主键表等),可能会导致传输进度卡住,这种情况建议对源端的索引和查询进行优化。或者源端有大事务操作、频繁 DDL 操作,这些会导致增量阶段短时间内的传输速率慢。

DTS 性能调优手段

1. 调整 DTS 任务传输参数。
选择指定的任务,在操作列选择更多 > 限速可调整。
全量阶段可调参数:源库全量导入并发线程数和 RPS,目标库全量导入并发线程数和 RPS。
增量阶段可调参数:目标库增量导入并发线程数。
2. 调整 DTS 任务规格。
选择指定的任务,在操作列选择更多 > 变配可调整。
购买 DTS 任务时,选择了不同的规格,在增量阶段对应的 RPS 上限不同。如下仅以数据同步任务为例,更多详情参考 规格说明。如果增量阶段源库的写入过大,购买的规格不够用,则需要升级 DTS 任务规格。
规格
性能上限(RPS)参考
micro
1000
small
2000
medium
5000
large
> 5000
3. 任务暂停再恢复。
选择指定的任务,在操作列选择更多 > 暂停
遇到源库短期内的业务波峰,导致目标端负载较高,可以先暂停任务,待数据波峰过后再继续同步。

整体原则

遇到性能问题,先排查网络和配置因素,再修改 DTS 速率配置参数。
DTS 传输性能与源/目标端的配置、DTS 任务规格、网络带宽、网络延迟等都有关系,所以提升 DTS 传输性能时,单独的增大并发线程数,或增大 RPS,不一定有效,需要分析性能瓶颈在哪个环节,针对具体问题具体解决。

性能调优步骤

1. 观察监控信息。
选择指定的任务,单击任务 ID,进入任务详情页。切换页签后,单击监控数据,查看对应的指标数据。
2. 如果监控数据显示延迟较高,请先排查网络问题。同地域延迟大于3ms,则判定延迟高,跨地域延迟还会略微增加。
2.1 选择“公网”接入方式时,因公网环境下带宽无法保证,网络可能会成为传输瓶颈,建议选择“专线接入”或“VPN 接入”,以提高网络质量。
2.2 选择“云联网”接入方式时,云联网仅提供所有地域间 10Kbps 以下的免费带宽,使用 DTS 对正式的业务数据进行传输时,需要付费来选择更高的带宽。
2.3 DTS 任务实例的归属地域,需要与目标实例地域保持一致,否则延时会增大。例如用户打算同步数据到广州地域,那么需要在广州地域下新建同步任务。
2.4 如果是自建数据库,需要就近选择 DTS 地域进行传输,否则延迟会增大。例如自建数据库在北京,需要将自建数据库同步到腾讯云的上海地域数据库,则 DTS 创建链路时地域选择“北京->上海”。选择“上海->上海”、“深圳->上海”均会增大延迟。
3. 全量阶段,调整 DTS 速率。
说明:
数据迁移任务在全量导出阶段(仅限结构导出、无主键表导出,数据同步任务在全量导出阶段(仅限结构导出、无主键表导出),或者主键冲突策略选择“冲突报错”,这些场景调整速率参数后可能会导致任务从头重新传,因此在如下3.1和3.2的调整操作前请仔细评估。
3.1 导出速率正常:全量导出 BPS 高于20-50MB/s,全量导出时与源实例网络延迟小于1ms。
这种一般不需要调整,如果用户需要提升速率,请结合源端的负载情况进行分析。
源端负载较高(例如 CPU 占用率大于90%),不建议再增大速率。
源端负载较低(例如 CPU 占用率小于50%),可以适当增大源端导出并发线程数。全量阶段默认 RPS 非常大,提升传输速率时一般不需要调整 RPS。如果修改导出并发线程数后效果不显著,请继续步骤5。
3.2 导出速率受限:全量导出 BPS 小于20MB/s,全量导出时与源实例网络延迟大于3ms。
需要结合源端的负载进行分析。
源端负载较高(例如 CPU 占用率大于90%),则源端本身的配置较低,DTS 的传输又增加了负载,导致性能受限,建议适当降低源端导出的并发线程数和 RPS。如果效果不显著,建议使用从库进行同步。
源端负载较低,适当增大源端导出并发线程数。如果调整后效果不显著,请继续步骤5。
3.3 导入速率正常:全量导入 BPS 高于20-50MB/s,全量导入时与目标实例网络延迟小于1ms。
这种一般不需要调整,如果用户需要提升速率,需要结合目标端的资源使用情况。
目标端负载较高(例如 CPU 占用率大于90%),不建议再增大速率。
目标端负载较低(例如 CPU 占用率小于50%),则可以适当增大目标端导入并发线程数。如果修改后效果不显著,请继续步骤5。
3.4 导入速率受限:全量导入 BPS 小于20MB/s,全量导入时与目标实例网络延迟大于3ms。
需要结合目标端的负载进行分析。
目标端负载较高(例如 CPU 占用率大于90%),则目标端本身的配置较低,DTS 的传输又增加了负载,导致性能受限,这种情况建议先适当降低目标端导入并发线程数和 RPS。
调整后效果不显著,可使用暂停功能,暂时停止任务传输。暂停任务建议不要超过3天,否则再恢复后可能无法接续传输
目标端负载较低,可以适当增大目标端导入并发线程数。如果修改后效果不显著,请继续步骤5。
4. 增量阶段,调整 DTS 速率。
4.1 通过监控查看增量任务的 RPS (源实例增量导出 RPS、目标实例增量导入 RPS)是否达到规格的上限,购买了不同规格的任务,对应的 RPS 上限 不同。
如果增量 RPS 已达上限,则先升级 DTS 任务规格(通过变配操作实现)。
如果增量 RPS<任务规格上限的60%,则可能性能受限,请继续步骤4.2。
4.2 查看目标端负载。
如果目标端负载达极限(例如 CPU 占用率大于95%),请继续步骤4.3。
如果目标端负载较正常(例如 CPU 占用率在60-85%),一般情况下不需要调整。
如果目标端负载较低(例如 CPU 占用率小于50%),可适当增大 DTS 速率参数。
目标端为数据库类型,可适当调大目标端写入并发线程数。调完效果不显著,请继续 步骤5。
目标端为 Kafka,增大目标端写入并发线程数效果可能不显著,请先增大目标端 CKafka 的带宽配置和分区数(多个分区可并发写入,提升写入目标端的速率)。
4.3 查看源端是否有大事务操作/频繁 DDL 操作。
4.3.1 源端有大事务/频繁 DDL 操作。
这种会对目标端产生临时的负载,可以暂停任务,待大事务/DDL 同步结束后,再恢复任务。但建议暂停的时间不要超过3天,否则任务可能会失败。
4.3.2 源端无大事务/频繁 DDL 操作。
这种由于目标端本身的配置较低,DTS 的传输又增加了负载,导致性能受限,建议先降低目标端导入并发线程数。
目标端为数据库类型,可适当降低目标端写入并发线程数。如果调完没有效果,请对任务进行降配
目标端为 Kafka,请先适当增大目标端 CKafka 的带宽配置和分区数(多个分区可并发写入,提升写入目标端的速率)。然后再降低目标端写入并发线程数。如果调完没有效果,请对任务进行降配
5. 
检查源端的数据内容。

5.1 源端是否有较长时间的 SQL 在运行。
如果源端如果有慢 SQL 运行,则会导致同步速率变慢。检查源端是否有慢 SQL,如有对慢 SQL 进行处理,并建议优化索引,避免慢 SQL 运行。
5.2 源端是否有不符合 DTS 规范的数据。
如果源端存在无主键表,对这些表进行大规模查询可能会导致同步进度慢。建议给源端的表都加上主键,或者不要同步无主键的表。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈