tidb数据库5.4.3和6.5.3版本性能测试对比

43 阅读4分钟

作者: qizhining 原文来源: tidb.net/blog/545462…

一、测试需求:

基于历史原因,我们的业务数据库一直使用5.4.3,最近由于研发提出需求:需要升级到6.5.3版本,基于版本不同,需要做个压力测试已验证2个版本之间的性能差异。

二、测试目的:

验证tidb数据库5.4.3和6.5.3版本性能的差异

三、测试结果:

tidb数据库6.5.3版本比5.4.3总体性能提升10%左右

四、以下是测试具体操作

1、集群环境

硬件配置

服务器为14台阿里云本地盘ssd服务器(选择的是NVME物理磁盘,不使用云盘,性能是5.5倍,具体测试请参考另外的文章)

服务器IPCPU内存
PD172.16.0.1394 vCore8G
PD172.16.0.1404 vCore8G
PD172.16.0.1414 vCore8G
TIDB172.16.0.1428 vCore16G
TIDB172.16.0.1438 vCore16G
TIDB172.16.0.1448 vCore16G
TIDB172.16.0.1458 vCore16G
TIKV172.16.0.14616 vCore64G
TIKV172.16.0.14716 vCore64G
TIKV172.16.0.14816 vCore64G
TIKV172.16.0.14916 vCore64G
TIKV172.16.0.15016 vCore64G
TIKV172.16.0.15116 vCore64G
TIKV172.16.0.15216 vCore64G

集群信息

image.png

2、TIDB版本:5.4.3

压测步骤

** Sysbench 测试准备**

sysbench主要对集群做基准测试,主要关注TPS、QPS

远程连接进入shell环境, 安装sysbench

[root@tsp-tidb-taos-01 ~]# yum install sysbench

[root@tsp-tidb-taos-01 ~]# sysbench --version

sysbench 1.0.17

建库 sbtest

[root@tsp-tidb-taos-01 ~]# mysql -h 127.0.0.1 -P 4000 -u root -p

Enter password:

MySQL [(none)]> create database sbtest;

初始化压测数据建100张表

[root@taos3 sysbench]#sysbench oltp_common --threads=32 --rand-type=uniform  --db-driver=mysql --mysql-db=sbtest --mysql-host=172.16.0.165 --mysql-port=4000 --mysql-user=root --mysql-password='xz291uc@^3iU57+B_k'  --tables=100 --table-size=10 prepare

写入测试

线程数:512 表大小:1000w表数量:16测试时长:5分钟

[root@taos3 sysbench]# sysbench oltp_write_only    --threads=512     --rand-type=uniform  --db-driver=mysql     --mysql-db=sbtest     --mysql-host=172.16.0.165  --mysql-port=4000     --mysql-user=root     --mysql-password='xz291uc@^3iU57+B_k'      --tables=16 --table-size=10000000 --report-interval=10 --time=300 run

image.png

线程数:1024表大小:1000w表数量:16测试时长:5分钟

[root@taos3 sysbench]# sysbench oltp_write_only    --threads=1024     --rand-type=uniform     --db-driver=mysql     --mysql-db=sbtest     --mysql-host=172.16.0.165    --mysql-port=4000     --mysql-user=root     --mysql-password='xz291uc@^3iU57+B_k'      --tables=16 --table-size=10000000 --report-interval=10 --time=300 run

image.png

线程数:1280表大小:1000w表数量:16测试时长:5分钟

[root@taos3 sysbench]# sysbench oltp_write_only    --threads=1280     --rand-type=uniform     --db-driver=mysql     --mysql-db=sbtest     --mysql-host=172.16.0.165    --mysql-port=4000     --mysql-user=root     --mysql-password='xz291uc@^3iU57+B_k'      --tables=16 --table-size=10000000 --report-interval=10 --time=300 run

image.png

压测结果

同一个数据库系统不同线程对数据库插入读取的影响

1000左右并发时TPS、QPS最高

ThreadsTPSQPS
5121219873190
10241382982974
12801342380543

--------------------------分割线------

3、TIDB版本:6.5.3

压测步骤

** Sysbench 测试准备**

升级数据库版本到6.5.3

image.png

写入测试

线程数:512 表大小:1000w表数量:16测试时长:5分钟

[root@taos3 sysbench]# sysbench oltp_write_only    --threads=512     --rand-type=uniform  --db-driver=mysql     --mysql-db=sbtest     --mysql-host=172.16.0.165  --mysql-port=4000     --mysql-user=root     --mysql-password='xz291uc@^3iU57+B_k'      --tables=16 --table-size=10000000 --report-interval=10 --time=300 run

image.png

线程数:1024表大小:1000w表数量:16测试时长:5分钟

[root@taos3 sysbench]# sysbench oltp_write_only    --threads=1024     --rand-type=uniform     --db-driver=mysql     --mysql-db=sbtest     --mysql-host=172.16.0.165    --mysql-port=4000     --mysql-user=root     --mysql-password='xz291uc@^3iU57+B_k'      --tables=16 --table-size=10000000 --report-interval=10 --time=300 run

image.png

线程数:1280表大小:1000w表数量:16测试时长:5分钟

[root@taos3 sysbench]# sysbench oltp_write_only    --threads=1280     --rand-type=uniform     --db-driver=mysql     --mysql-db=sbtest     --mysql-host=172.16.0.165    --mysql-port=4000     --mysql-user=root     --mysql-password='xz291uc@^3iU57+B_k'      --tables=16 --table-size=10000000 --report-interval=10 --time=300 run

image.png

压测结果

同一个数据库系统不同线程对数据库插入读取的影响

1000左右并发时TPS、QPS最高

ThreadsTPSQPS
5121439486368
10241496989818
12801404484264

2个数据库版本测试结果对比

版本ThreadsTPSQPS
5.4.35121219873190
10241382982974
12801342380543
6.5.35121439486368
10241496989818
12801404484264