强同步性能对比数据

最近更新时间: 2024-06-12 15:06:00

本文提供 TDSQL 分片与开源 MySQL(未经优化)的性能对比,用于做对比参考。

对比测试环境

硬件:CPU 24core、内存128GB、磁盘1.8TB SSD 网络环境:局域网,平均网络延迟0.80ms 操作系统:CentOS 7.0 数据量:10张表,每张表2180000行,每张表数据量约5.2GB,innodb buffer:30GB 开源版本:MySQL 5.7.17 社区版(未经优化,开启半同步) TDSQL 分片版本: MySQL5.7(开启强同步),默认开启线程池,参数如下:

  • thread_pool_max_threads=2000
  • thread_pool_oversubscribe = 10
  • thread_pool_stall_limit = 50
  • thread_handling = 2

对比测试详细数据

1. 数据初始化参数

create database caccts ;
./sysbench --num-threads=500 --test=./tests/db/oltp.lua.bak --oltp-table-size=2180000 --oltp-tables-count=10 --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp-sum-ranges=0 --oltp-order-ranges=0 --oltp-index-updates=1 --oltp-non-index-updates=0 --report-interval=1 --mysql-user=xxxxxx --mysql-password=xxxxxx --mysql-host=xxxxxx --mysql-db=caccts --max-time=360000 --max-requests=2000000000 prepare

2. 非索引更新(update)

./sysbench --num-threads=500 --test=./tests/db/update\_non\_index.lua --oltp-table-size=2180000 --oltp-tables-count=10 --percentile=99 --report-interval=1 --mysql-host=xxxx --mysql-user=xxx --mysql-password=xxx --mysql-db=caccts --max-time=360000 --max-requests=2000000000 --mysql-port=3306 run

3. 只读(select)

./sysbench --num-threads=500 --test=./tests/db/select.lua --oltp-table-size=2180000 --oltp-tables-count=10 --percentile=99 --report-interval=1 --mysql-host=xxxx --mysql-user=xxx --mysql-password=xxx --mysql-db=caccts --max-time=360000 -- max-requests=2000000000 --mysql-port=3306 run

4. 混合测试

./sysbench\_orig --num-threads=500 --test=./tests/db/oltp\_new.lua --oltp-read-only=off --oltp-table-size=2180000 --oltp-tables-count=10 --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp-sum-ranges=0 --oltp-order-ranges=0 --oltp-distinct-ranges=0 --oltp-index-updates=1 --oltp-non-index-updates=0 --percentile=99 --report-interval=1 --mysql-host=xxxx -- mysql-user=xxx --mysql-password=xxx --mysql-db=caccts --max-time=360000 --max-requests=2000000000 --mysql-port=3306 run

读请求(read)测试结果

并发 版本 qps 平均响应时间(ms) 99%响应时间(ms)
50 开源 MySQL 304585 0.16 0.26
50 TDSQL 330695 0.15 0.24
100 开源 MySQL 407443 0.24 0.48
100 TDSQL 484640 0.2 0.72
200 开源 MySQL 433401 0.57 1
200 TDSQL 498215 0.55 1.22
500 开源 MySQL 428542 1.16 2.42
500 TDSQL 494874 1.01 2.61
1000 开源 MySQL 412775 2.4 6.3
1000 TDSQL 478393 2.08 4.21

写请求(updata)测试结果

并发 版本 qps 平均响应时间(ms) 99%响应时间(ms)
50 开源 MySQL 14816 3.37 4.82
50 TDSQL 28925 1.73 2.55
100 开源 MySQL 25046 3.99 6.91
100 TDSQL 43466 2.3 4
200 开源 MySQL 32690 6.12 10.86
200 TDSQL 54045 3.7 7.27
500 开源 MySQL 37192 13.44 21.1
500 TDSQL 70370 7.25 15.52
1000 开源 MySQL 35447 28.2 40.47
1000 TDSQL 69890 14.35 30.73

混合场景(OLTP 测试)测试结果

并发 版本 qps 平均响应时间(ms) 99%响应时间(ms)
50 开源 MySQL 63806 4.7 7.13
50 TDSQL 162883 1.84 3.45
100 开源 MySQL 102516 5.85 11.4
100 TDSQL 173974 3.58 6.64
200 开源 MySQL 124550 9.64 18.92
200 TDSQL 208128 5.76 11.9
500 开源 MySQL 125386 23.93 39.68
500 TDSQL 232543 13.58 27.81
1000 开源 MySQL 121765 49.29 80.71
1000 TDSQL 226130 27.76 54.78