Curve Testing Camp Time|数据库方向参考

1 CurveBS作为云原生数据库的存储底座

CurveBS作为Curve的子项目,提供高可用、高性能、易运维的分布式块存储功能,通过在其上架构一层 PolarDB-FileSystem,作为云原生数据库的存储底座,完美支持云原生数据库的存算分离架构。以在其上构建 PolarDB-for-PostgreSQL 为例,其架构如下图所示:

PGoverCurveBS.excalidraw

2 测试性能基准

本次数据库方向的测试活动,基于上述架构,测试 PolarDB-for-PostgreSQL 在CurveBS + PolarFS上的性能,参考的基准性能和测试方法如下:

2.1 测试环境信息

2.1.1 硬件配置 (推荐)

节点 roles 磁盘情况
计算节点1 curve-sdk,PolarFS, PolarDB-for-PG读写节点 一块盘放置PG本地数据(或部署于系统盘)
计算节点2 curve-sdk,PolarFS, PolarDB-for-PG只读节点 一块盘放置PG本地数据(或部署于系统盘)
存储节点1 curve-mds,etcd, curve-chunkserver 20块盘用于部署chunkserver,另加一块盘用于部署curve-mds和etcd(或部署于系统盘)
存储节点2 curve-mds,etcd, curve-chunkserver 20块盘用于部署chunkserver,另加一块盘用于部署curve-mds和etcd (或部署于系统盘)
存储节点3 curve-mds,etcd, curve-chunkserver 20块盘用于部署chunkserver,另加一块盘用于部署curve-mds和etcd (或部署于系统盘)
存储节点4 curve-chunkserver 20块盘用于部署chunkserver
存储节点5 curve-chunkserver 20块盘用于部署chunkserver
存储节点6 curve-chunkserver 20块盘用于部署chunkserver

2.1.2 软件配置(推荐)

软件 版本 说明
Curve 1.2.5
PolarFS 2.1.4 需要使用支持curvebs后端sdk的版本,地址:GitHub - opencurve/PolarDB-FileSystem: A userland shared disk filesystem supports Curve cloud native storage system
PolarDB-for-PG POLARDB_11_STABLE

2.1.3 Curve卷大小

编号 卷类型 卷大小 说明
1 curve 10T 请使用条带化卷!参数stripeUnit=16384,strpeCount=64)

条带化命令参考:

curve create --filename /pg --length 10240 --user curve --stripeUnit 16384 --stripeCount 64

2.2 测试工具(推荐)

2.2.1 测试工具 benchmarksql

BenchmarkSQL:是一款经典的开源数据库测试工具,内嵌了TPCC测试脚本,可以对EnterpriseDB、PostgreSQL、MySQL、Oracle以及SQL Server等数据库直接进行测试

使用版本:5.0

2.2.2 压测工具 pgbench

pgbench :postgresql 自带提供了一款轻量级的压力测试工具,按自己的需求对数据库进行性能压力测试

版本:跟随pgsql

2.3 性能测试基准数据

2.3.1 pgbench

测试场景 事务平均延时 TPS
10000w数据16并发16线程 4.471ms 3577
10000w数据32并发32线程 5.228ms 6120
10000w数据64并发64线程 7.578ms 8444
10000w数据128并发128线程 11.423ms 11204
10000w数据256并发256线程 20.519ms 12473

2.3.2 benchmarksql

配置参数 tpmc tpmTotal
warehouse = 10,loadWorkers=10,terminals=10 21497.80 49536.80
warehouse = 20,loadWorkers=20,terminals=50 53287.20 122778.00
warehouse = 10,loadWorkers=100,terminals=50 39135.00 89997.00
warehouse = 10,loadWorkers=50,terminals=50 30516.40 70275.20

3 用户测试步骤

4 参考资料

  1. 云原生关系型数据库 PolarDB PostgreSQL引擎 性能白皮书 https://help.aliyun.com/document_detail/116849.html
  2. https://github.com/petergeoghegan/benchmarksql/blob/master/HOW-TO-RUN.txt
  3. https://chowdera.com/2021/10/20211017233149589M.html
  4. https://apsaradb.github.io/PolarDB-for-PostgreSQL/zh/deploying/db-pfs.html
  5. https://apsaradb.github.io/PolarDB-for-PostgreSQL/zh/operation/tpcc-test.html
  6. https://bbs.huaweicloud.com/forum/thread-36304-1-1.html