一、测试工具
·SysBench 标准 OLTP 读写混合场景中一个事务包含18个读写 SQL。
·SysBench 标准 OLTP 只读场景中一个事务包含14个读 SQL(10条主键点查询、4条范围查询)。
·SysBench 标准 OLTP 只写场景中一个事务包含4个写 SQL(2条 UPDATE、1条 DELETE、1条 INSERT)。
本压测使用 SysBench1.1.0版本。更多信息,请参见 Sysbench 产品文档。
二、测试环境
这篇说说云数据库 PostgreSQL 性能测试所使用的环境。
·地域/可用区:北京 – 北京七区
·客户端:云服务器标准型S6(16核32GB,SSD 云硬盘)5Mbps
·客户端操作系统:TencentOS Server2.6(Final) 64位
·网络:云服务器 CVM 和云数据库 PostgreSQL 实例网络类型均为私有网络(VPC)且在同一子网下
测试的云数据库 PostgreSQL 实例信息如下:
·存储类型:通用型 – 本地高性能 SSD 盘
·实例架构:双机高可用(一主一从)- 读写实例
·实例版本:V14.2
·主备复制方式:异步复制
三、测试指标
这里说明云数据库 PostgreSQL 性能测试的测试指标。
| 指标 | 定义 |
| TPS(Transactions Per Second) | 数据库每秒执行的事务数,以 COMMIT 成功次数为准。 |
| QPS(Queries Per Second) | 数据库每秒执行的 SQL 数,包含 INSERT、SELECT、UPDATE、DELETE、COMMIT 等。 |
| 并发 | 性能测试时客户端发起的并发数。 |
四、SysBench 参数说明
·pgsql-host:云数据库 PostgreSQL 实例的内网地址
·pgsql-port:云数据库 PostgreSQL 实例的端口号
·pgsql-user:云数据库 PostgreSQL 实例的用户名
·pgsql-password:上述用户名对应的密码
·pgsql-db:数据库名
·table_size:单表数据量
·tables:表总数
·threads:并发线程数
·time:运行时间
五、测试方法
注意:说明:
注意:请将以下命令中的 XXX 替换为云数据库 PostgreSQL 测试实例的内网地址、端口号、用户名、用户密码、数据库名,以及对应测试场景的单表数据量和表总数,具体参数说明请参考 SysBench 参数说明。
使用 Sysbench 测试 oltp_write_only 场景的步骤如下,测试 oltp_read_only 和 oltp_read_write 时只需要替换对应的 Lua 模型场景文件即可:
1. 准备数据
sysbench /usr/local/share/sysbench/oltp_write_only.lua –db-driver=pgsql –pgsql-host=XXX –pgsql-port=XXX –pgsql-user=XXX –pgsql-password=XXX –pgsql-db=XXX –table-size=XXX –tables=XXX prepare
2. 运行命令,进行压测
sysbench /usr/local/shareping
sysbench/oltp_write_only.lua –db-driver=pgsql –pgsql-host=XXX –pgsql-port=XXX –pgsql-user=XXX –pgsql-password=XXX –pgsql-db=XXX –table-size=XXX –tables=XXX –threads=XXX –time=XXX –report-interval=1 run
3. 清理数据
sysbench /usr/local/share/sysbench/oltp_write_only.lua –db-driver=pgsql –pgsql-host=XXX –pgsql-port=XXX –pgsql-user=XXX –pgsql-password=XXX –pgsql-db=XXX –table-size=XXX –tables=XXX cleanup