当前位置: 首页 > ops >正文

postgresql 常用参数配置

#01 - Connection-Authentication
优化点:

listen_addresses = '0.0.0.0'
建议:生产环境应限制为具体IP(如 '192.168.1.0/24,127.0.0.1'),避免暴露到公网。

ssl = off
建议:启用SSL(ssl = on),配置证书提升安全性。

superuser_reserved_connections = 10
建议:降低至 3,避免普通连接不足。

#02 - Memory-Resource
关键调整:

shared_buffers = 1GB
建议:设为物理内存的 25%-30%(若总内存≥8GB,可设为 4GB)。

work_mem = 5592kB
建议:根据并发调整(如 4MB),公式参考:work_mem = (总内存 - shared_buffers) / (max_connections * 2)。

effective_cache_size = 3GB
建议:设为物理内存的 50%-75%(若总内存≥8GB,建议 6GB)。

huge_pages = try
建议:若系统支持且内存>64GB,设为 on 提升性能。

#03 - WAL-Checkpoint-Archiving
优化点:

synchronous_commit = off
风险:可能丢失少量事务。若需高持久性,设为 on 或 remote_apply(集群场景)。

wal_buffers = 16MB
建议:通常设为 shared_buffers 的 1/32(若 shared_buffers=4GB,设为 128MB)。

archive_command
验证:确保 /postgresql/log/archive/ 路径存在且权限正确,建议添加错误重试逻辑(如 cp %p ... || exit 1)。

#04 - Replication
优化点:

max_wal_senders = 32
建议:根据实际从库数量调整,通常 主库数 + 2。

track_commit_timestamp = on
用途:若需逻辑复制(如CDC),保持开启;否则关闭以减少开销。

#05 - Reporting-Logging
关键调整:

log_min_duration_statement = 1000
建议:设为 100ms 以捕获更多慢查询。

log_statement = 'ddl'
建议:若需审计所有操作,设为 all;否则保持默认。

日志存储:确保 /postgresql/log/pg_log 路径有足够空间,建议日志定期清理或归档。

#06 - QueryTuning-Statistics-Autovacuum
优化点:

autovacuum_max_workers = 5
建议:若表多或写入频繁,可增至 6-8。

autovacuum_vacuum_scale_factor = 0.2
建议:添加此参数,替代默认的 0.2(更积极清理:autovacuum_vacuum_scale_factor = 0.05)。

maintenance_work_mem = 256MB
建议:设为 1GB 以加速VACUUM和索引创建。

#07 - Lock
优化点:

deadlock_timeout = 5s
建议:保持默认 1s,避免长锁等待。

#08 - Client Connection
无需调整:时区、本地化设置合理。

#09 - pg_stat_statements-auto_explain
优化点:

auto_explain.log_min_duration = 10s
建议:设为 1s 以捕获更多执行计划。

注意:auto_explain.log_analyze = true 会显著增加日志量,生产环境建议仅在调试时开启。

http://www.xdnf.cn/news/8367.html

相关文章:

  • Pytorch中文文本分类
  • 科技化企业展厅需关注哪些前沿技术?互动设计如何提升用户体验?
  • wsl2 不能联网
  • 二次开发系列(二):从基础到进阶,用类定义实现自定义属性面板的高阶功能
  • 【MySQL】第6节|深入理解Mysql事务隔离级别与锁机制
  • 图形推理_
  • Kotlin协程优化Android ANR问题
  • AI-02a5a8.神经网络-与学习相关的技巧-超参数的验证
  • Linux中的tty与login之间的关系
  • Linux系统常用指令
  • CMake指令:option()
  • 代码讲解Java线程转换
  • 达梦数据库-学习-21-C 外部函数
  • 使用vscode MSVC CMake进行C++开发和Debug
  • 智能指针
  • 20250523在荣品的PRO-RK3566开发板的Android13下解决千兆网异常的问题【硬件部分】
  • 【算法系列】协同过滤算法
  • 通过vue-pdf和print-js实现PDF和图片在线预览
  • bi平台是什么意思?bi平台具体有什么作用?
  • Unreal渲染源码简读(一)RHI/Shader
  • MacOS Docker 启动 RustDesk Server OSS
  • 前端状态管理介绍(React状态管理)(通过管理状态来控制UI的呈现,确保数据的一致性和可维护性)(界面与数据分离、可预测性、组件化、响应式更新)
  • 高可用架构设计要点
  • 钉钉出口IP有哪些
  • linux strace调式定位系统问题
  • python学习day2:进制+码制+逻辑运算符
  • 云存储迁移遇瓶颈?大文件跨平台传输加速指南
  • hbuilder中h5转为小程序提交发布审核
  • Kafka Producer 如何实现Exactly Once消息传递语义
  • 用HTML5+JavaScript实现汉字转拼音工具