在 Debian 上调整 PostgreSQL 参数,通常分为修改配置文件、重启/重载服务、以及运行时动态调整几种方式。下面按常见场景说明。
Debian 上 PostgreSQL 一般通过 apt 安装,数据目录和配置文件通常在:
# 查看版本
psql --version
# 或
ls /etc/postgresql/
典型路径(以 15 为例):
/etc/postgresql/15/main/
├── postgresql.conf # 主配置文件
├── pg_hba.conf # 访问控制
└── conf.d/ # 额外配置
查看当前配置目录:
SHOW config_file;
SHOW data_directory;
sudo nano /etc/postgresql/15/main/postgresql.conf
常见参数示例:
# 内存相关
shared_buffers = 2GB
work_mem = 64MB
maintenance_work_mem = 512MB
# 连接数
max_connections = 200
# 日志
log_min_duration_statement = 1000
logging_collector = on
log_directory = 'log'
仅重新加载(大部分参数)
sudo systemctl reload postgresql
或:
SELECT pg_reload_conf();
需要重启的参数(如 shared_buffers)
sudo systemctl restart postgresql
某些参数可以在线修改(不需要重启):
-- 会话级
SET work_mem = '128MB';
-- 全局(重启后失效)
ALTER SYSTEM SET shared_buffers = '2GB';
ALTER SYSTEM 会写入:
$PGDATA/postgresql.auto.conf
修改后执行:
SELECT pg_reload_conf();
⚠️ shared_buffers 等仍需重启。
避免直接改主文件:
sudo nano /etc/postgresql/15/main/conf.d/zz_tuning.conf
shared_buffers = 2GB
max_connections = 200
然后:
sudo systemctl reload postgresql
| 参数 | 说明 | 建议 |
|---|---|---|
| shared_buffers | 共享内存 | 25% 内存 |
| effective_cache_size | 系统缓存 | 50–75% 内存 |
| work_mem | 排序/哈希 | 32–256MB |
| max_connections | 连接数 | 尽量少 |
| checkpoint_timeout | 检查点 | 5–15min |
| random_page_cost | SSD 调低 | 1.1 |
sudo cp postgresql.conf postgresql.conf.bak
SHOW shared_buffers;
如果你愿意,可以告诉我:
我可以给你一套具体的参数配置建议。