写点什么

TiDB 5.0 VS MySQL 8.0 性能对比测试

  • 2022 年 7 月 11 日
  • 本文字数:1032 字

    阅读完需:约 3 分钟

原文来源:https://tidb.net/blog/6debd614


【是否原创】否


【作者】@seiang


【首发渠道链接】http://www.seiang.com/?p=1195


TiDB 正式线上前,总是要对 TiDB 做个压测来为后续的业务接入做评估依旧;本次针对 TiDB 5.0 以及 MySQL 8.0 在同等规格配置下,性能做一个对比,尽管来说这么对比,可比性不是很强,但是起码能为后续业务的接入以及上线有一个理论依旧;

测试环境

TiDB 5.0 集群(3 TiDB,3 PD,3~5 TiKV 【16C16G】)


MySQL 8.0 主从环境【16C16G】

测试方案

1、通过 Sysbench 导入 10 张表,每张表有 1000 万行数据。


2、压测线程:16,32,64,128


3、对每个表执行 analyze table 命令。


4、使用 Sysbench 进行 point_select、read_write 测试。单轮预热 1 分钟,测试时间 30 分钟。


TiKV v5.0 参数配置

storage.scheduler-worker-pool-size: 5

raftstore.store-pool-size: 3

raftstore.apply-pool-size: 3

rocksdb.max-background-jobs: 8

raftdb.max-background-jobs: 4

raftdb.allow-concurrent-memtable-write: true

server.grpc-concurrency: 6

readpool.unified.min-thread-count: 5

readpool.unified.max-thread-count: 20

readpool.storage.normal-concurrency: 10

pessimistic-txn.pipelined: true

server.enable-request-batch: false

测试流程

准备测试数据


./sysbench --config-file=config oltp_point_select --tables=10 --table-size=10000000 prepare
复制代码


执行测试命令


./sysbench --config-file=config oltp_read_write --tables=10 --table-size=10000000 run
复制代码

测试结果

不同线程测试结果对比



从上面的测试结果,可以看到针对单个 TiDB 节点测试,同样配置、相同线程下,TiDB 集群的 QPS 要远远低于 MySQL 8.0;


那么我们看下压测过程中系统负载及 IO 情况:


TiDB




MySQL 8.0




从监控结果看 ,TiDB 集群无论从系统负载还是 IO 层面看,都没有饱和,而 MySQL 主机的负载已经非常的高,IO 完全跑满;


接下来,我们通过 HAproxy 对 TiDB Server 节点进行负载均衡,然后进行压测,下面是压测结果:



从测试结果看,从 TiDB Server 在负载均衡的情况,整个 TiDB 集群的资源使用情况有所提高,QPS 对比单个 TiDB Server 节点有明显的提高,而且节点的负载基本差不多,网络吞吐量明显提高。


综合单个 Server 和 Server 之间负载均衡的测试结果看,负载均衡要比单个 TiDB Server 的资源使用率高,QPS 要高很多,所以推荐负载均衡的使用模式。


好了,今天就先介绍这么多吧,针对 TiDB 性能等方面,后续再进行介绍。


也欢迎关注作者的个人微信公众号:



用户头像

TiDB 社区官网:https://tidb.net/ 2021.12.15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TiDB 5.0 VS MySQL 8.0 性能对比测试_版本测评_TiDB 社区干货传送门_InfoQ写作社区