【非官方】TiDb@腾讯云使用及性能测试

第一次使用sysbench进行测试,Tidb、腾讯云都是第一次使用,如有不当,请指正,谢谢。


之前看到新闻“腾讯云进一步开放技术生态,发布HTAP数据库TiDB”:2017年10月10日, 腾讯云与PingCAP合作发布了一款同时支持在线交易与在线分析业务的分布式数据库产品HTAP数据库TiDB,为实时商业分析和企业决策提供了支持。

因为是免费的,于是就在腾讯云上申请在测试了一把,目前是免费手工申请,腾讯云(010-xxx的电话)会电话过来调查一番,然后开通,开通后的链接是:console.cloud.tencent.com,电话告知目前只有北京腾讯云可以进行测试。OK,开始测试吧。


1、创建私有网络,这个最好先创建,否则云服务器连不上tidb测试机,就还要再倒腾弹性网卡什么的。

2、创建TiDb实例,console.cloud.tencent.com,TiDb节点数不能改,TiKv我改成5个可以申请成功,注意网络类型选择刚刚创建的网络

TiDb实例开通要几分钟,开通完了是这样的。

3、购买一台云服务器 CVM作为连接TiDb实例的测试client,可以购买按时间的,测试几个小时,也就花几块钱而已,详细不介绍了。


4、通过web登录上测试机,连接mysql进行,创建测试数据库

5、安装sysbench,测试脚本被安装在 /usr/share/sysbench/

6、准备测试数据,1000万数据量

time sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --oltp-table-size=10000000 --mysql-host=10.8.8.11 --mysql-port=4000 --mysql-user=root --mysql-password=password --mysql-db=sysbench prepare

7、检查一下数据库,看看多少数据


8、通过腾讯云的监控界面看看

腾讯云控制台->实例列表->选中实例->实例监控->TiKv->使用空间->节点详情

实际上,这个监控是晚5分钟左右

9、测试select性能

time sysbench /usr/share/sysbench/tests/include/oltp_legacy/select.lua --db-driver=mysql --oltp-table-size=10000000 --mysql-host=10.8.8.11 --mysql-port=4000 --mysql-user=root --mysql-password=password --mysql-db=sysbench --events=10000000 --report-interval=5 --threads=16 --time=60 run

数据如下:

SQL statistics:

queries performed:

read: 1265911

write: 0

other: 0

total: 1265911

transactions: 1265911 (21095.83 per sec.)

queries: 1265911 (21095.83 per sec.)

ignored errors: 0 (0.00 per sec.)

reconnects: 0 (0.00 per sec.)


General statistics:

total time: 60.0059s

total number of events: 1265911


Latency (ms):

min: 0.54

avg: 0.76

max: 13.85

95th percentile: 1.03

sum: 958685.72


Threads fairness:

events (avg/stddev): 79119.4375/1139.34

execution time (avg/stddev): 59.9179/0.00


16线程,select QPS 2.1万


9、测试insert性能

time sysbench /usr/share/sysbench/tests/include/oltp_legacy/insert.lua --db-driver=mysql --oltp-table-size=10000000 --mysql-host=10.8.8.11 --mysql-port=4000 --mysql-user=root --mysql-password=password --mysql-db=sysbench --events=10000000 --report-interval=5 --threads=16 --time=60 run

16线程,insert QPS 0.4万


10、测试update性能

time sysbench /usr/share/sysbench/tests/include/oltp_legacy/update_index.lua --db-driver=mysql --oltp-table-size=10000000 --mysql-host=10.8.8.11 --mysql-port=4000 --mysql-user=root --mysql-password=password --mysql-db=sysbench --events=10000000 --report-interval=5 --threads=16 --time=60 run


16线程,update QPS 0.4万,与insert差不多


10、测试混合性能

time sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --oltp-table-size=10000000 --mysql-host=10.8.8.11 --mysql-port=4000 --mysql-user=root --mysql-password=password --mysql-db=sysbench --events=10000000 --report-interval=5 --threads=16 --time=60 run


16线程,读写混合 查询就下降到7000左右了,这个影响很大


11,最后看下腾讯云的监控数据


每分钟114万次,相当于每秒2万次,与sysbench基本一致


12、最后,用mysqlslap测试一下看看

mysqlslap -a --concurrency=16 --iterations=1 --number-int-cols=10 --number-char-cols=10 --auto-generate-sql-guid-primary --number-of-queries=160000 --auto-generate-sql-load-type=key -h10.8.8.11 -P4000 -uroot -p


16万请求,19秒完成,QPS相当于8200次

--只能说,mysqlslap相当不精准。


第一次使用sysbench进行测试,Tidb、腾讯云都是第一次使用,如有不当,请指正,谢谢。

编辑于 2017-10-30