DM 2.0-GA Benchmark Report
This benchmark report describes the test purpose, environment, scenario, and results for DM 2.0-GA.
Test purpose
The purpose of this test is to evaluate the performance of DM full import and incremental replication and to conclude recommended configurations for DM migration tasks based on the test results.
Test environment
Machine information
System information:
Hardware information:
Others:
- Network rtt between servers: rtt min/avg/max/mdev = 0.074/0.116/0.158/0.042 ms
Cluster topology
Version information
- MySQL version: 5.7.31-log
- TiDB version: v4.0.7
- DM version: v2.0.0
- Sysbench version: 1.0.17
Test scenario
You can use a simple data migration flow, that is, MySQL1 (172.16.5.33) -> DM-worker(172.16.5.32) -> TiDB (172.16.5.34), to do the test. For detailed test scenario description, see performance test.
Full import benchmark case
For detailed full import test method, see Full Import Benchmark Case.
Full import benchmark results
To enable multi-thread concurrent data export via Dumpling, you can configure the threads parameter in the mydumpers configuration item. This speeds up data export.
Benchmark results with different pool sizes in load unit
In this test, the full amount of data imported using sysbench is 3.78 GB. The following is detailed information of the test data:
Benchmark results with different row count per statement
In this test, the full amount of imported data is 3.78 GB and the pool-size of load unit is set to 32. The statement count is controlled by statement-size, rows, or extra-args parameters in the mydumpers configuration item.
Incremental replication benchmark case
For detailed incremental replication test method, see Incremental Replication Benchmark Case.
Incremental replication benchmark result
In this test, the worker-count of sync unit is set to 32 and batch is set to 100.
Benchmark results with different sync unit concurrency
Benchmark results with different SQL distribution
Recommended parameter configuration
dump unit
We recommend that the statement size be 200 KB~1 MB, and row count in each statement be approximately 1000~5000, which is based on the actual row size in your scenario.
load unit
We recommend that you set pool-size to 16.
sync unit
We recommend that you set batch to 100 and worker-count to 16~32.