本文介绍了PolarDB PostgreSQL版链接地址选择集群地址时的性能测试结果。
简介
相较于直接连接PolarDB PostgreSQL版主节点地址,PolarDB PostgreSQL版连接集群地址在以下两方面进行了优化,提升了整体吞吐:
- PolarDB PostgreSQL版集群自带读写分离功能。应用程序只需连接一个集群地址,写请求会自动发往主节点,读请求会自动根据各节点的负载(当前未完成的请求数)发往主节点或只读节点。
- PolarDB PostgreSQL版集群具有事务拆分功能。事务拆分在保证读写一致性的前提下,将事务中的读请求发往只读节点,以提升性能。详情请参见事务拆分。
说明 具体测试步骤请参见性能测试方法(OLTP)。
前提条件
- 购买的PolarDB PostgreSQL版包含一个主节点和至少一个只读节点。
- 连接的地址采用集群地址,而不是主节点地址。采用集群地址后,会根据您的读写请求以及负载来决定请求发往主节点还是只读节点。
- 建议开启事务拆分功能,事务拆分在保证读写一致性的前提下,将事务中的读请求发送只读节点,以提升性能。
测试环境与规格
本次测试主要采用PolarDB for PostgreSQL 14集群,环境和规格如下表所示(除连接地址之外,其他均相同):
环境与规格 | 说明 |
---|---|
核数+内存 | 8核 64 GB |
PostgreSQL版本 | 14 |
磁盘性能等级 | PSL5 |
节点数量 | 1主节点+1只读节点+1standby节点 |
连接地址 | 集群地址/主节点地址 |
事务拆分 | 开启 |
会话/最终一致性 | 会话一致性 |
测试Workload说明
本次测试采用Sysbench测试,只需将Sysbench测试连接的IP修改为集群地址即可,Sysbench的测试方法具体请参见性能测试方法(OLTP)。
为了更好的说明PolarDB for PostgreSQL 14集群性能的提升,本次测试选取了一个典型场景:读场景(oltp_read_only
)。
衡量指标
TPS(Transactions Per Second):即数据库每秒执行的事务数,以COMMIT成功次数为准。
测试数据量
本次实验测试数据量如下表所示:
参数 | 说明 |
---|---|
表数目 | 8 |
行数 | 64,000,000 |
总数据量 | 128 GB |
性能结果
读场景
TPS/连接地址 | 集群地址 | 主节点地址 |
---|---|---|
256 | 8149.57 | 4859.45 |
512 | 7607.02 | 4418.72 |
1024 | 7037.76 | 4058.89 |