一、对比测试环境
·硬件:CPU 24core ,内存128GB,磁盘1.8TB SSD。
·网络环境:局域网,平均网络延迟0.80ms。
·操作系统:CentOS 7.0
·数据量:10张表,每张表2180000行,每张表数据量约5.2GB,innodb buffer:30GB。
·开源版本:MySQL 5.6 社区版(未经优化,开启异步同步)
·TDSQL 分片版本: TDSQL 10.1.10(内核优化,开启强同步),默认开启线程池。
二、对比测试结果
综合来看,经过优化的 TDSQL 的强同步性能略优于 MySQL 的异步性能。
三、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
七、1. 读请求(read)
| 并发 | 版本 | qps | 平均响应时间(ms) | 99%响应时间(ms) |
| 50 | 开源 MySQL | 306512 | 0.16 | 0.26 |
| 50 | TDSQL | 310695 | 0.15 | 0.24 |
| 100 | 开源 MySQL | 417443 | 0.24 | 0.48 |
| 100 | TDSQL | 454640 | 0.2 | 0.72 |
| 200 | 开源 MySQL | 423419 | 0.57 | 1 |
| 200 | TDSQL | 488224 | 0.56 | 1.22 |
| 500 | 开源 MySQL | 438512 | 1.16 | 2.42 |
| 500 | TDSQL | 490678 | 1.21 | 2.61 |
| 1000 | 开源 MySQL | 412723 | 2.3 | 6.3 |
| 1000 | TDSQL | 481342 | 2.1 | 4.21 |
八、2. 写请求(update)
| 并发 | 版本 | qps | 平均响应时间(ms) | 99%响应时间(ms) |
| 50 | 开源 MySQL | 24816 | 2.37 | 2.82 |
| 50 | TDSQL | 28925 | 2.33 | 2.55 |
| 100 | 开源 MySQL | 43046 | 2.25 | 3.91 |
| 100 | TDSQL | 43466 | 2.3 | 4 |
| 200 | 开源 MySQL | 54690 | 3.92 | 7.86 |
| 200 | TDSQL | 54045 | 3.7 | 7.27 |
| 500 | 开源 MySQL | 70192 | 7.44 | 14.1 |
| 500 | TDSQL | 70370 | 7.25 | 15.52 |
| 1000 | 开源 MySQL | 68447 | 15.2 | 29.47 |
| 1000 | TDSQL | 69890 | 14.35 | 30.73 |
九、3. 混合场景(OLTP 测试)
| 并发 | 版本 | qps | 平均响应时间(ms) | 99%响应时间(ms) |
| 50 | 开源 MySQL | 154806 | 2.7 | 4.13 |
| 50 | TDSQL | 162883 | 1.84 | 3.45 |
| 100 | 开源 MySQL | 162696 | 3.85 | 7.4 |
| 100 | TDSQL | 173974 | 3.58 | 6.64 |
| 200 | 开源 MySQL | 204550 | 5.64 | 12.92 |
| 200 | TDSQL | 208128 | 5.76 | 11.9 |
| 500 | 开源 MySQL | 235386 | 13.93 | 28.58 |
| 500 | TDSQL | 232543 | 13.58 | 27.23 |
| 1000 | 开源 MySQL | 201765 | 28.29 | 60.72 |
| 1000 | TDSQL | 226130 | 27.76 | 54.38 |