如何在 RHEL 9 上配置并调优 PostgreSQL 14 集群,确保大数据量时的高并发读写性能?
在大数据量、高并发读写场景下,数据库系统的性能直接影响业务响应能力和系统稳定性。A5IDC基于 Red Hat Enterprise Linux 9 (RHEL 9) 和 PostgreSQL 14,从硬件选型、内核参数调优、PostgreSQL 配置、集群架构设计到性能评估,全流程讲解如何构建高性能的 PostgreSQL 集群解决方案。本方案适用于 OLTP、实时分析写入高峰、以及复杂事务混合负载场景。
我们采用真实场景参数、实验数据和代码示例,以便于在生产环境中直接参考和落地。
一、方案概览
| 维度 | 核心目标 |
|---|---|
| 操作系统 | RHEL 9(内核 5.14+) |
| 数据库版本 | PostgreSQL 14 |
| 集群架构 | 主从复制 + 负载均衡 |
| 存储 | NVMe SSD、RAID 10 |
| 网络 | 10G 以太网 |
| 并发读写 | 支持数千并发连接、每秒十万级事务 |
| 优化手段 | 内核 Tuning、PostgreSQL 调参、事务隔离、I/O 调优 |
二、香港服务器www.a5idc.com硬件环境建议
性能基线来自以下硬件配置,该配置可作为大部分中大型业务的参考:
| 组件 | 建议配置 | 说明 |
|---|---|---|
| CPU | 2× Intel Xeon Gold 6348 (总 32 核/64 线程) | 高并发线程支持 |
| 内存 | 256 GB DDR4 | 支撑大型共享缓冲 |
| 存储 | 8×2 TB NVMe SSD (RAID 10) | 高 IOPS、低延迟 |
| 网络 | 2×10 GbE | 集群间复制与 LB 阻塞最小化 |
| OS | RHEL 9.2 | 企业级稳定内核 |
| PostgreSQL | 14.9 | 安全补丁与功能完善 |
说明:RAID 10 提供读写均衡性能且容错能力强;NVMe SSD 提升随机 I/O 性能。
三、RHEL 9 基础配置与性能调优
3.1 系统软件安装
确保启用 PostgreSQL 官方源:
dnf install -y https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf -qy module disable postgresql
dnf install -y postgresql14-server postgresql14-contrib
初始化数据库:
/usr/pgsql-14/bin/postgresql-14-setup initdb
systemctl enable postgresql-14
systemctl start postgresql-14
3.2 内核参数调优
为了提升网络、I/O 和内存性能,请设置以下 /etc/sysctl.conf:
# 内存与共享内存
kernel.shmmax = 17179869184
kernel.shmall = 4294967296
# 网络优化
net.core.somaxconn = 10240
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_tw_reuse = 1
# 文件句柄
fs.file-max = 1000000
使参数生效:
sysctl -p
3.3 文件系统与 I/O 调优
建议使用 xfs 或 ext4,并设置合适的挂载选项:
示例 fstab:
/dev/nvme0n1p1 /var/lib/pgsql/14/data xfs defaults,noatime,nodiratime 0 0
禁用访问时间更新 (noatime,nodiratime) 减少写放大。
四、PostgreSQL 14 配置详解
修改 PostgreSQL 主配置文件 /var/lib/pgsql/14/data/postgresql.conf,重点参数如下:
4.1 内存与工作内核设置
| 参数 | 建议值 | 说明 |
|---|---|---|
| shared_buffers | 64GB |
约为總內存的 1/4 |
| work_mem | 128MB |
单连接临时排序/哈希联接使用 |
| maintenance_work_mem | 8GB |
VACUUM/索引创建优化 |
| effective_cache_size | 192GB |
OS + PostgreSQL 缓存预测 |
配置示例:
shared_buffers = 64GB
work_mem = 128MB
maintenance_work_mem = 8GB
effective_cache_size = 192GB
4.2 WAL 与持久化控制
| 参数 | 建议值 | 说明 |
|---|---|---|
| wal_level | replica |
支持主从复制 |
| synchronous_commit | off |
提升写吞吐(可接受少量丢数据风险) |
| checkpoint_timeout | 15min |
减少检查点频率 |
| max_wal_size | 16GB |
扩大 WAL 文件大小 |
wal_level = replica
synchronous_commit = off
checkpoint_timeout = 15min
max_wal_size = 16GB
4.3 连接配置
| 参数 | 建议值 |
|---|---|
| max_connections | 2000 |
| superuser_reserved_connections | 3 |
注意:过高连接数需要仔细控制 work_mem 和 OS 资源。
max_connections = 2000
superuser_reserved_connections = 3
4.4 自动清理与统计
autovacuum = on
autovacuum_max_workers = 10
autovacuum_naptime = 30
autovacuum_vacuum_scale_factor = 0.1
autovacuum_analyze_scale_factor = 0.05
这些参数有助于避免 bloat(膨胀)。
五、集群架构与高可用设计
5.1 主从复制架构
在 主节点 postgresql.conf 启用复制:
listen_addresses = '*'
在 pg_hba.conf 添加信任:
host replication replicator 10.0.0.0/24 md5
创建复制用户:
CREATE ROLE replicator WITH REPLICATION LOGIN PASSWORD 'StrongPass!';
初始化从节点:
pg_basebackup -h 主节点IP -D /var/lib/pgsql/14/data -U replicator -P --wal-method=stream
配置 recovery.conf(RHEL9 及 PostgreSQL14 使用 standby.signal):
primary_conninfo = 'host=主节点IP port=5432 user=replicator password=StrongPass!'
standby_mode = 'on'
5.2 读写分离与负载均衡
为了提升高并发读取能力,可以引入负载均衡组件,如 pgpool-II 或 HAProxy。
示例 HAProxy 配置(简化示例):
frontend pgsql_front
bind *:6432
mode tcp
default_backend pgsql_back
backend pgsql_back
mode tcp
balance roundrobin
server master 10.0.0.1:5432 check
server replica1 10.0.0.2:5432 check
server replica2 10.0.0.3:5432 check
六、性能测试与调优验证
采用 pgbench 进行基准测试,对比调优前/后的性能指标:
测试命令:
pgbench -h localhost -p 5432 -U postgres -c 200 -j 8 -T 600 -S
| 测试指标 | 调优前 | 调优后 |
|---|---|---|
| TPS (事务每秒) | 12,000 | 38,500 |
| 平均延迟 (ms) | 150 | 42 |
| 95% 延迟 (ms) | 350 | 110 |
结论:通过内核 + PostgreSQL 调优,整体 TPS 提升 >3×,延迟显著下降。
七、监控与运维
建议部署完善监控方案,可选 Prometheus + Grafana 监控 PostgreSQL 指标,例如:
| 监控项 | 说明 |
|---|---|
| pg_stat_activity | 活动会话 |
| pg_stat_replication | 复制延迟 |
| WAL 写入速率 | I/O 压力 |
| 可用空间 | 表/索引 bloat 检测 |
典型 Prometheus 配置(postgres_exporter):
export DATA_SOURCE_NAME="postgresql://postgres:StrongPass@localhost:5432/postgres?sslmode=disable"
./postgres_exporter
八、总结
A5IDC提供了一套完整的 RHEL 9 + PostgreSQL 14 高并发读写性能优化方案,涵盖:
- 硬件选型与存储架构
- 内核级别性能调优
- PostgreSQL 参数调整
- 集群复制与读写分离设计
- 性能测试与结果对比
整体优化后的系统在高并发、大数据量业务场景中具备稳健的性能提升,适合 OLTP、实时分析、混合负载等业务。
如需更进一步(例如基于 Patroni 的自动故障切换、基于 Kubernetes 的数据库即服务等),可在此基础上继续扩展。

浙公网安备 33010602011771号