DM 集群性能测试
可以使用简单的迁移数据流来测试 DM 集群的数据迁移性能,即单个 MySQL 实例到 TiDB 的数据迁移:MySQL -> DM -> TiDB。
- 使用 TiUP 部署 TiDB 测试集群,所有配置使用 TiUP 提供的默认配置。
- 部署 MySQL 服务,开启 模式 binlog,其他配置项使用默认配置。
使用如下结构的表进行性能测试:
生成测试数据
使用 sysbench
在上游创建测试表,并生成全量导入的测试数据。sysbench
生成数据的命令如下所示:
sysbench --test=oltp_insert --tables=4 --mysql-host=172.16.4.40 --mysql-port=3306 --mysql-user=root --mysql-db=dm_benchmark --db-driver=mysql --table-size=50000000 prepare
创建数据迁移任务
创建上游 MySQL 的 source,将
source-id
配置为source-1
。详细操作方法参考:。创建
full
模式的 DM 迁移任务,示例任务配置文件如下:
获取测试结果
观察 DM-worker 日志,当出现 all data files have been finished
时,表示全量数据导入完成,此时可以看到消耗时间。示例日志如下:
[INFO] [loader.go:604] ["all data files have been finished"] [task=test] [unit=load] ["cost time"=52.439796ms]
根据测试数据的数据量和导入消耗时间,可以算出全量数据的迁移速度。
初始化表
使用 sysbench
在上游创建测试表。
创建数据迁移任务
创建上游 MySQL 的 source, source-id 配置为
source-1
(如果在全量迁移性能测试中已经创建,则不需要再次创建)。详细操作方法参考:加载数据源配置。
创建数据迁移任务的详细操作参考。
生成增量数据
执行 sysbench
命令在上游持续生成增量数据:
sysbench --test=oltp_insert --tables=4 --num-threads=32 --mysql-host=172.17.4.40 --mysql-port=3306 --mysql-user=root --mysql-db=dm_benchmark --db-driver=mysql --report-interval=10 --time=1800 run
获取测试结果
通过 query-status
命令观测 DM 的迁移状态,通过 Grafana 观测 DM 的监控指标。主要包括单位时间内完成的 job 数量 finished sqls jobs
等,详细的监控指标说明参考 Binlog replication 监控指标。