如何在 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 调优

建议使用 xfsext4,并设置合适的挂载选项:

示例 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-IIHAProxy

示例 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 的数据库即服务等),可在此基础上继续扩展。

posted @ 2026-01-07 11:13  A5IDC  阅读(36)  评论(0)    收藏  举报