服务器配置与优化
掌握核心配置文件与参数
了解常见性能优化参数
能根据服务器配置调整参数
核心讲解
(1)配置文件
主配置文件:
postgresql.conf,所有参数配置pg_hba.conf:客户端认证配置,控制谁能连
pg_ident.conf:用户映射
Linux 默认位置:
/etc/postgresql/15/main/修改配置后要重载:
SELECT pg_reload_conf();或者重启
(2)pg_hba.conf 认证配置
控制连接认证,每行格式:类型 数据库 用户 地址 认证方式
认证方式:
trust:免密,危险,仅限本地
password:密码认证
md5:MD5 密码
scram-sha-256:安全密码,推荐
peer:系统用户认证,本地默认
(3)核心性能参数
表格
参数 | 作用 | 建议值 |
|---|---|---|
| 共享内存缓冲区 | 系统内存 25% |
| 排序哈希内存 | 4MB~64MB,按并发算 |
| 维护操作内存 | 64MB~256MB |
| 优化器预估可用缓存 | 系统内存 50%~75% |
| WAL 缓冲区 | 16MB |
| 最大连接数 | 100~1000 |
| 检查点完成目标 | 0.9 |
(4)优化建议
共享内存根据内存调整,不是越大越好
连接数不要设置太大,够用就行
慢查询优化:加索引、优化 SQL
定期 VACUUM,清理死元组
操作示例
# 1. 编辑配置文件
sudo vim /etc/postgresql/15/main/postgresql.conf
# 2. 常用参数修改
shared_buffers = 2GB
effective_cache_size = 6GB
work_mem = 16MB
maintenance_work_mem = 128MB
max_connections = 200
wal_buffers = 16MB
checkpoint_completion_target = 0.9
log_min_duration_statement = 1000 # 慢查询日志,超过1秒记录
# 3. 编辑pg_hba.conf,允许远程连接
# 添加一行
host all all 0.0.0.0/0 scram-sha-256
# 4. 监听所有地址
listen_addresses = '*'
# 5. 重启服务生效
sudo systemctl restart postgresql
# 6. 验证参数
psql -U postgres -c "SHOW shared_buffers;"
常见误区
shared_buffers 设太大:设太大反而会下降,一般 25% 系统内存即可
max_connections 越大越好:连接太多会消耗大量内存,够用就行,太多反而慢
直接开放所有 IP:生产环境不要用 0.0.0.0,限制指定 IP 段
修改配置不重载:大部分配置修改要 reload 或者重启才生效
课后练习
修改你的数据库配置,调整共享内存参数
配置允许指定 IP 远程连接
开启慢查询日志,阈值设为 1 秒
简述几个核心内存参数的作用

