在 CentOS 下调整 PostgreSQL 参数,通常分为修改配置文件 → 重新加载/重启 → 验证参数三个步骤。下面按常见场景系统说明。
psql -U postgres -c "SHOW data_directory;"
常见路径:
/var/lib/pgsql/12/data/usr/local/pgsql/datapostgresql.conf # 核心参数
pg_hba.conf # 访问控制
# 内存相关
shared_buffers = 2GB # 通常设为物理内存的 25%
work_mem = 64MB
maintenance_work_mem = 512MB
# 连接数
max_connections = 200
# 日志
logging_collector = on
log_min_duration_statement = 1000
systemctl reload postgresql
或
pg_ctl reload -D /var/lib/pgsql/12/data
systemctl restart postgresql
SHOW shared_buffers;
SHOW max_connections;
或:
SELECT name, setting, source
FROM pg_settings
WHERE name IN ('shared_buffers','max_connections');
如修改了数据目录:
semanage fcontext -a -t postgresql_db_t "/new/path(/.*)?"
restorecon -Rv /new/path
firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload
如 shared_buffers 很大,需调整:
sysctl -w kernel.shmmax=...
并写入 /etc/sysctl.conf
| 场景 | 建议 |
|---|---|
| 读多写少 | 增大 shared_buffers |
| 复杂查询 | 增大 work_mem |
| 高并发 | 控制 max_connections + 连接池 |
| 慢查询 | 开启 log_min_duration_statement |
如果你能提供:
我可以给你一套针对性参数模板。