文档中心 分布式数据库 TDSQL 购买指南 强同步性能对比数据

强同步性能对比数据

最近更新时间:2018-10-29 11:22:12

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

对比测试环境

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

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

对比测试结果

综合来看,TDSQL 单个分片的读写性能是开源MySQL的1倍左右。

对比测试详细数据如下

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