本文详细介绍了PolarDB-X 标准版的Sysbench测试设计、测试过程和测试结果。
背景信息
PolarDB-X标准版采用了一主一备一日志的三节点架构,通过多副本同步复制确保数据的强一致性。面向具备超高并发、复杂查询及轻量分析的在线业务场景的数据库,本文将验证PolarDB-X标准版的通用规格,引擎版本分别为MySQL 5.7和MySQL 8.0的实例在Sysbench读写场景中的性能表现,分别测试内存命中型和磁盘I/O型。
内存命中型:适用于数据量较小的场景,可将数据全量放入Buffer Pool进行存取。
磁盘I/O型:适用于数据量大的场景,只将最常访问的数据放入Buffer Pool进行存取。
测试设计
本次压测采用业界标准的SysBench,分别对PolarDB-X标准版的通用规格,引擎版本为MySQL 5.7和MySQL 8.0的实例进行测试,实例具体规格如下:
引擎版本:MySQL 5.7、MySQL 8.0
部署拓扑:单可用区
系列:标准版
规格系列:通用规格
节点规格:2C4G、2C8G、4C8G、4C16G、8C16G、8C32G、16C32G、16C64G
存储类型:本地SSD盘
测试工具
下载Sysbench压测工具包sysbench.tar.gz,并解压。
tar xzvf sysbench.tar.gz cd sysbench/
安装编译所需依赖库。
yum -y install make automake libtool pkgconfig libaio-devel mysql-devel ./autogen.sh ./configure make -j make install
执行
sysbench --version
,如果返回sysbench 1.1.0表示测试工具安装成功。
也可以通过GitHub下载开源版本的Sysbench,请参见下载链接。
测试场景说明
数据量:不同规格采用不同数据量压测。
压测场景:使用Sysbench oltp_read_write场景压测。
压测时长:每个场景300秒。
实例参数设置:全部采用开箱参数,不手动设置任何参数。
测试过程
准备数据:
sysbench --mysql-host='xxxx' --histogram='on' --mysql-user='xxx' --percentile='95' --threads='xxx' --db-ps-mode='disable' --report-interval='1' --mysql-password='xxx' --tables='xxx' --table-size='xxx' --db-driver='mysql' --time='300' --rand-type='uniform' --mysql-port='3306' --events='0' --mysql-db=xxx oltp_read_write prepare
运行压测:
sysbench --mysql-host='xxxx' --histogram='on' --mysql-user='xxx' --percentile='95' --threads='xxx' --db-ps-mode='disable' --report-interval='1' --mysql-password='xxx' --tables='xxx' --table-size='xxx' --db-driver='mysql' --time='300' --rand-type='uniform' --mysql-port='3306' --events='0' --mysql-db=xxx oltp_read_write run
清理数据 :
sysbench --mysql-host='xxxx' --histogram='on' --mysql-user='xxx' --percentile='95' --threads='xxx' --db-ps-mode='disable' --report-interval='1' --mysql-password='xxx' --tables='xxx' --table-size='xxx' --db-driver='mysql' --time='300' --rand-type='uniform' --mysql-port='3306' --events='0' --mysql-db=xxx oltp_read_write cleanup
table_size:每张表数据量,不同规格压测数据量不同;
tables:表数量不同规格压测表数量不同;
threads:压测并发数,不同规格,并发数不同;
time:压测时长,本文一般采用300秒;
mysql-host、mysql-user、mysql-password是实例的链接信息。
测试结果
版本号:polardb-2.4.0_standard_xcluster5.4.19-20240527,详情请参见:版本发布说明。
MySQL 5.7内存命中型
规格 | 并发度 | 单表数据量 | 表总数 | TPS | QPS | avg_lat(ms) |
2c4g | 16 | 25000 | 32 | 2281.96 | 45639.24 | 7.01 |
2c8g | 16 | 25000 | 32 | 2410.54 | 48210.76 | 6.64 |
4c8g | 32 | 25000 | 128 | 4259.37 | 85187.43 | 7.51 |
4c16g | 32 | 25000 | 128 | 4408.82 | 88176.48 | 7.26 |
8c16g | 64 | 25000 | 128 | 5929.75 | 118595.07 | 10.79 |
8c32g | 64 | 25000 | 128 | 6082.82 | 121656.47 | 10.52 |
16c32g | 128 | 25000 | 128 | 7310.47 | 146209.3 | 17.5 |
16c64g | 128 | 25000 | 128 | 7967.22 | 159344.27 | 16.07 |
MySQL 5.7磁盘I/O型
规格 | 并发度 | 单表数据量 | 表总数 | TPS | QPS | avg_lat(ms) |
2c4g | 16 | 800000 | 8 | 1845.34 | 36906.73 | 8.67 |
2c8g | 16 | 800000 | 16 | 2197.84 | 44220.51 | 7.28 |
4c8g | 32 | 800000 | 16 | 3692.17 | 73843.32 | 8.67 |
4c16g | 32 | 800000 | 56 | 4172.07 | 83441.36 | 7.67 |
8c16g | 64 | 800000 | 56 | 5883.02 | 117660.48 | 10.88 |
8c32g | 64 | 800000 | 128 | 5546.38 | 110927.67 | 14.39 |
16c32g | 128 | 800000 | 128 | 6868.36 | 137367.31 | 18.64 |
16c64g | 128 | 800000 | 256 | 7751.82 | 155036.27 | 16.51 |
MySQL 8.0内存命中型
规格 | 并发度 | 单表数据量 | 表总数 | TPS | QPS | avg_lat(ms) |
2c4g | 16 | 25000 | 32 | 1875.3 | 37506.02 | 8.53 |
2c8g | 16 | 25000 | 32 | 1595.98 | 31919.55 | 10.02 |
4c8g | 32 | 25000 | 128 | 3677.3 | 73546.05 | 8.7 |
4c16g | 32 | 25000 | 128 | 3623.58 | 72471.53 | 8.83 |
8c16g | 64 | 25000 | 128 | 4719.63 | 94392.54 | 13.56 |
8c32g | 64 | 25000 | 128 | 4848.15 | 96962.91 | 13.2 |
16c32g | 128 | 25000 | 128 | 8180.18 | 163603.55 | 15.65 |
16c64g | 128 | 25000 | 128 | 7372.02 | 147440.43 | 17.36 |
MySQL 8.0磁盘I/O型
规格 | 并发度 | 单表数据量 | 表总数 | TPS | QPS | avg_lat(ms) |
2c4g | 16 | 800000 | 8 | 1815.87 | 36317.41 | 8.81 |
2c8g | 16 | 800000 | 16 | 1165.9 | 23317.94 | 13.72 |
4c8g | 32 | 800000 | 16 | 2878.76 | 57575.13 | 11.11 |
4c16g | 32 | 800000 | 56 | 3150.34 | 63006.87 | 10.16 |
8c16g | 64 | 800000 | 56 | 4590.04 | 91800.79 | 13.94 |
8c32g | 64 | 800000 | 128 | 4135.85 | 82717.05 | 15.47 |
16c32g | 128 | 800000 | 128 | 7075.06 | 141501.37 | 18.09 |
16c64g | 128 | 800000 | 256 | 6148.95 | 122978.96 | 20.81 |