本文详细介绍了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 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 cleanup
table_size:每张表数据量,不同规格压测数据量不同;
tables:表数量不同规格压测表数量不同;
threads:压测并发数,不同规格,并发数不同;
time:压测时长,本文一般采用300秒;
mysql-host、mysql-user、mysql-password是实例的链接信息。
测试结果
MySQL 5.7内存命中型
规格 | 并发度 | 单表数据量 | 表总数 | TPS | QPS | avg_lat(ms) |
2c4g | 16 | 25000 | 32 | 2159.32 | 43186.46 | 7.41 |
2c8g | 16 | 25000 | 32 | 2160.87 | 43217.47 | 7.4 |
4c8g | 32 | 25000 | 128 | 4401.47 | 88029.51 | 7.27 |
4c16g | 32 | 25000 | 128 | 4559.71 | 91194.13 | 7.02 |
8c16g | 64 | 25000 | 128 | 5617.85 | 112357.06 | 11.39 |
8c32g | 64 | 25000 | 128 | 5484.87 | 109697.38 | 11.67 |
16c32g | 128 | 25000 | 128 | 7052.84 | 141056.88 | 18.16 |
16c64g | 128 | 25000 | 128 | 6777.49 | 135549.81 | 18.89 |
MySQL 5.7磁盘I/O型
规格 | 并发度 | 单表数据量 | 表总数 | TPS | QPS | avg_lat(ms) |
2c4g | 16 | 800000 | 8 | 1905.83 | 38116.62 | 8.39 |
2c8g | 16 | 800000 | 16 | 2025.03 | 40500.52 | 7.9 |
4c8g | 32 | 800000 | 16 | 3962.31 | 79246.15 | 8.07 |
4c16g | 32 | 800000 | 56 | 4230.72 | 84614.39 | 7.56 |
8c16g | 64 | 800000 | 56 | 5351.63 | 107032.58 | 11.96 |
8c32g | 64 | 800000 | 128 | 5005.15 | 100102.93 | 12.78 |
16c32g | 128 | 800000 | 128 | 7029.69 | 140593.7 | 18.21 |
16c64g | 128 | 800000 | 256 | 7170.61 | 143412.16 | 17.87 |
MySQL 8.0内存命中型
规格 | 并发度 | 单表数据量 | 表总数 | TPS | QPS | avg_lat(ms) |
2c4g | 16 | 25000 | 32 | 1318.93 | 26378.61 | 12.13 |
2c8g | 16 | 25000 | 32 | 1362.21 | 27244.23 | 11.74 |
4c8g | 32 | 25000 | 128 | 3203.1 | 64061.78 | 9.99 |
4c16g | 32 | 25000 | 128 | 3214.48 | 64289.47 | 9.97 |
8c16g | 64 | 25000 | 128 | 4779.7 | 95593.92 | 13.4 |
8c32g | 64 | 25000 | 128 | 4749.49 | 94989.77 | 13.48 |
16c32g | 128 | 25000 | 128 | 6513.68 | 130273.59 | 19.66 |
16c64g | 128 | 25000 | 128 | 6768.86 | 135377.16 | 18.93 |
MySQL 8.0磁盘I/O型
规格 | 并发度 | 单表数据量 | 表总数 | TPS | QPS | avg_lat(ms) |
2c4g | 16 | 800000 | 8 | 1284.5 | 25689.93 | 12.46 |
2c8g | 16 | 800000 | 16 | 1283.5 | 25669.88 | 12.46 |
4c8g | 32 | 800000 | 16 | 2971.33 | 59426.56 | 10.77 |
4c16g | 32 | 800000 | 56 | 2880.59 | 57611.66 | 11.11 |
8c16g | 64 | 800000 | 56 | 4503.08 | 90061.54 | 14.22 |
8c32g | 64 | 800000 | 128 | 4599.33 | 91986.51 | 13.91 |
16c32g | 128 | 800000 | 128 | 5804.74 | 116094.72 | 22.05 |
16c64g | 128 | 800000 | 256 | 6134.86 | 122697.16 | 20.86 |
- 本页导读 (0)