2026 年 PostgreSQL 性能基准测试报告

由 John Doe 九月 28, 2026

摘要:本报告呈现了 sysbench OLTP 基准测试的全面结果,采用最新的 PostgreSQL 18.6 版本。测试涵盖 3 个缓冲池规格(2GB、12GB、32GB)、6 个并发等级(4 ~ 256 线程)。

目录

测试环境与基础设施

硬件与主机配置

主机硬件配置:

组件 规格说明
架构 x86-64
ECS 实例规格 华为云通用计算增强型,c9.8xlarge.4 (32vCPU 128GB),c9.4xlarge.4 (16vCPU 64GB)
存储设备 通用型 SSD v2,容量 200GB,IOPS 100000,吞吐量 1000 MB/s

软件配置:

组件 规格说明
操作系统 Rocky Linux 9.6 64 位
内核版本 5.14.0-570.17.1
PostgreSQL 版本 18.6
基准测试工具 sysbench 1.1.0,搭载 LuaJIT 2.1.0-beta3
PostgreSQL 客户端 psql(用于版本检测与配置校验)
监控工具 nmon(测试期间每秒采集一次)

缓冲池规格

本次测试数据库总大小为 24GB,设置了三档缓冲池大小,分别对应不同的工作负载特征:

档位 缓冲池大小 工作负载特征
2GB 2GB 磁盘 IO 型 — 数据集远大于缓冲池(比例 1:12),存在大量读放大
12GB 12GB 混合型 — 部分数据集可放入内存(比例 1:2),贴近真实生产场景
32GB 32GB 内存命中型 — 全量工作集可放入内存,CPU 与锁机制成为主要瓶颈

同时,根据实际的shared_buffers缓冲池大小,对应调整 WAL 日志空间的大小。这样,可以让检查点始终按照固定的时间周期运行。

数据库配置

测试数据包含 20 张表,每张表 500 万行,总计 1 亿行数据。 磁盘上的数据库文件总大小为 24GB。

所有数据库采用统一基础配置以保证公平性,在此之上叠加缓冲池规格配置。

参数 取值 配置说明
max_connections 1000 预留充足空间,高于测试最大 256 线程
logging_collector on 启用日志收集器

测试步骤

创建测试数据库 “bench”:

createdb bench

使用 sysbench 命令导入测试数据到 “bench” 数据库:

sysbench oltp_read_write \
--tables=20 \
--table_size=5000000 \
--pgsql-user=postgres \
--pgsql-db=bench \
prepare

导入测试数据后,清理 “bench” 数据库:

vacuumdb bench

运行性能基准测试:

sysbench oltp_read_write \
--pgsql-user=postgres \
--pgsql-db=bench \
--tables=20 \
--table_size=5000000 \
--threads=128 \
--time=600 \
--report-interval=10 \
run

注意:首次运行为预热过程,不作为正式的测试结果数据。

测试结果

下面收集的测试指标 TPS,为数据库每秒处理的事务数。在 Sysbench 的读写测试模型中,单个事务包含 20 个查询语句,数据库每秒处理的查询数(QPS),约为 TPS 的 20 倍。

场景一:内存命中型

实例规格:c9.8xlarge.4 (32vCPU 128GB)

数据库参数配置:

shared_buffers = 32GB
max_wal_size = 32GB
min_wal_size = 4GB
Sysbench 线程数 TPS (PostgreSQL) TPS (Redrock Postgres)
4 1752.42 1742.26
16 4150.17 4404.45
32 5905.28 5854.78
64 10144.89 10011.48
128 13793.44 13895.51
256 15260.80 15685.06

内存命中型测试结果

场景二:混合型

实例规格:c9.4xlarge.4 (16vCPU 64GB)

数据库参数配置:

shared_buffers = 12GB
max_wal_size = 12GB
min_wal_size = 2GB
Sysbench 线程数 TPS (PostgreSQL) TPS (Redrock Postgres)
4 1452.00 1567.00
16 2611.87 3097.21
32 3488.18 4589.56
64 4682.07 5980.58
128 5916.14 7093.96
256 5662.79 6229.91

混合型测试结果

场景三:磁盘 I/O 型

实例规格:c9.4xlarge.4 (16vCPU 64GB)

数据库参数配置:

shared_buffers = 2GB
max_wal_size = 2GB
min_wal_size = 256MB
Sysbench 线程数 TPS (PostgreSQL) TPS (Redrock Postgres)
4 1243.74 1391.79
16 2180.26 2668.91
32 3128.07 4038.71
64 3730.14 4662.09
128 3950.43 5071.72
256 4427.00 5336.35

磁盘 I/O 型测试结果

参考

Percona:2026 年 MySQL 生态系统性能基准测试报告