温馨提示×

centos下postgresql如何调参数

小樊
43
2026-10-06 08:42:35
栏目: 云计算

在 CentOS 下调整 PostgreSQL 参数,通常分为修改配置文件 → 重新加载/重启 → 验证参数三个步骤。下面按常见场景系统说明。


一、找到 PostgreSQL 配置文件位置

1. 查看数据目录

psql -U postgres -c "SHOW data_directory;"

常见路径:

  • CentOS 7 + yum 安装:/var/lib/pgsql/12/data
  • 编译安装:/usr/local/pgsql/data

2. 主要配置文件

postgresql.conf   # 核心参数
pg_hba.conf       # 访问控制

二、修改参数(postgresql.conf)

示例:常见调优参数

# 内存相关
shared_buffers = 2GB          # 通常设为物理内存的 25%
work_mem = 64MB
maintenance_work_mem = 512MB

# 连接数
max_connections = 200

# 日志
logging_collector = on
log_min_duration_statement = 1000

三、让参数生效

1. 重新加载(不中断服务,推荐)

systemctl reload postgresql

或

pg_ctl reload -D /var/lib/pgsql/12/data

2. 重启(部分参数必须重启)

systemctl restart postgresql

四、验证参数是否生效

SHOW shared_buffers;
SHOW max_connections;

或:

SELECT name, setting, source
FROM pg_settings
WHERE name IN ('shared_buffers','max_connections');

五、CentOS 特有问题注意

1. SELinux

如修改了数据目录:

semanage fcontext -a -t postgresql_db_t "/new/path(/.*)?"
restorecon -Rv /new/path

2. 防火墙

firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload

3. 大内存参数

如 shared_buffers 很大,需调整:

sysctl -w kernel.shmmax=...

并写入 /etc/sysctl.conf


六、常见调参场景

场景 建议
读多写少 增大 shared_buffers
复杂查询 增大 work_mem
高并发 控制 max_connections + 连接池
慢查询 开启 log_min_duration_statement

如果你能提供:

  • PostgreSQL 版本
  • CentOS 版本
  • 服务器内存 & CPU
  • 使用场景(Web / 数据分析 / 报表)

我可以给你一套针对性参数模板。

0 踩