有奖:语音产品征文挑战赛等你来> HOT

测试工具

Sysbench 是一款开源的、模块化的、跨平台的多线程基准测试工具,针对在线事务处理(OLTP)场景,Sysbench 可以评估测试数据库在运行高负载时相关核心参数的性能。
SysBench 标准 OLTP 读写混合场景中一个事务包含18个读写 SQL。
SysBench 标准 OLTP 只读场景中一个事务包含14个读 SQL(10条主键点查询、4条范围查询)。
SysBench 标准 OLTP 只写场景中一个事务包含4个写 SQL(2条 UPDATE、1条 DETELE、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