来源:云数据库技术
标题1.摘要
前段时间,测试了国内主要云原生数据库PolarDB、TDSQL-C、GaussDB的性能,参考:《再测云原生数据库性能》。在上次测试结果中,由于地域版本差异,腾讯云的TDSQL-C并没有表现出“重磅升级”的效果,现在两个月过去了,我们再来重测TDSQL-C。先说结论:
相比之前,本次TDSQL-C性能有了非常显著的提升,在这里的场景与规格(4c16g)下,读写性能相比之前提升了80%
经过与腾讯云数据库团队沟通,选择了在已经完成“重磅升级”的“北京六区”进行测试;另外,据悉,预计12月底,所有地域将完成升级
标题2.详细测试结果
TDSQL-C在「读写混合」场景下,8月比6月的性能有显著提升:
各厂商在「读写混合」场景下的压测结果,TDSQL-C升级之后,性能显著提升:
注意:阿里云和华为云为6月份的测试数据
本次测试的主要目的是对比TDSQL-C升级前后的性能差异。可以看到,腾讯云的TDSQL-C在升级之后性能显著提升,某些场景下甚至提升了近一倍的性能。
3.测试说明
这里对我们的测试方式做一个详细说明。本次测试还是选择4c16g的规格进行对比,使用了工具sysbench 1.0.20版本进行测试。具体的,在「读写」、「只读」、「只写」3个场景下进行2~512个线程的压测, 获取每秒执行事务数TPS(Transactions Per Second)、每秒执行请求数QPS(Queries Per Second)来作为性能对比指标。
数据库规格:
客户端规格:
压测命令:
-- 准备数据
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=10 --events=0 --time=300 --threads={2~512} oltp_read_write prepare
-- 运行workload
# OLTP读写混合
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=10 --events=0 --time=300 --threads={2~512} --percentile=95 --report-interval=1 oltp_read_write run
# OLTP只读场景
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=10 --events=0 --time=300 --threads={2~512} --percentile=95 --report-interval=1 oltp_read_only run
# OLTP只写场景
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=10 --events=0 --time=300 --threads={2~512} --percentile=95 --report-interval=1 oltp_write_only run
-- 清理数据
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=10 --events=0 --time=300 --threads={2~512} --percentile=95 oltp_read_write/oltp_read_only/oltp_write_only cleanup
说明:10张表,每张表1000万数据,数据集约25G,2~512个线程进行压测。
补充说明:
TDSQL-C支持了自动读写分离(Proxy),但其Proxy暂不支持事务拆分,虽然通过Proxy地址,但也只在读写节点上执行。如果想充分发挥读写分离的优势,可以通过工单方式让腾讯云的工作人员修改Proxy策略,或开启sysbench的参数–skip-trx(非事务模式)才能使用只读节点,本文测试没有开启该参数。
读写内网地址(高可用地址,用RW表示)和 数据库代理地址(自动读写分离地址,用Proxy表示)。
4.测试详情
TDSQL-C 升级之后是否有提升?
读写场景:
读写场景结论:TDSQL-C 8月份的性能比6月份平均高出了近80%。
只读场景:
只读场景结论:TDSQL-C 8月份的性能比6月份平均高出了近70%。
只写场景:
只写场景结论:TDSQL-C 8月份的性能比6月份平均高出了近120%。
小结:通过以上三个场景的压测对比,可以看到TDSQL-C 8月份比6月份性能有显著提升,特别是只写场景下,提升了1.2倍。虽然TDSQL-C支持了自动读写分离,但因Proxy暂时不支持事务拆分,虽然通过Proxy地址,但也只在读写节点上执行,所以性能比用读写地址的低一些。
TDSQL-C 升级之后是否有超越?
注意:阿里云和华为云为6月份的测试数据。
可以看到,腾讯云的TDSQL-C在升级之后性能显著提升,大大提高了其竞争力,也让用户在云原生数据库上有了更多的选择。
5.总结
通过上面的压测数据,看到了TDSQL-C在“重磅升级” 之后带来的性能提升,并且功能上也支持了自动读写分离(后续会默认支持事务拆分),极大提高了其在云原生数据库上的竞争力。最后,期待TDSQL-C的升级版本在更多的地域中上线。