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

参数调优

一、通用优化版(8GB内存/中小业务/单机)

适用于物理内存8GB、QPS中等(<1000)、无主从的单机生产环境,必改项已标注★

# ===================== 连接与认证(必改)=====================
listen_addresses = '192.168.1.0/24'  # ★ 替换为你的业务网段,禁止直接用*
port = 5433                          # ★ 非默认端口,降低暴力破解风险
max_connections = 300                 # 按业务压测调整,优先配合PgBouncer连接池
password_encryption = scram-sha-256   # ★ 保留默认,禁用md5# ===================== 内存配置(核心优化)=====================
shared_buffers = 2GB                 # ★ 物理内存8GB的25%,按实际内存调整
work_mem = 8MB                       # 单查询排序/哈希内存,小查询场景够用
maintenance_work_mem = 1GB           # ★ 加速索引创建/真空清理
effective_cache_size = 6GB           # ★ 物理内存的75%,优化器选索引关键
temp_file_limit = 1GB                # ★ 限制临时文件大小,防止磁盘占满# ===================== WAL与检查点(可靠性+性能)=====================
wal_level = replica                  # 预留主从扩展空间
fsync = on                           # ★ 禁止关闭,保障数据安全
synchronous_commit = on              # 高一致性场景保留,高吞吐可改remote_write
checkpoint_timeout = 15min           # ★ 减少检查点频率
max_wal_size = 4GB                   # ★ 调大减少IO峰值
min_wal_size = 1GB                   # 随max_wal_size同步调整
archive_mode = on                    # ★ 开启WAL归档(PITR恢复前提)
archive_command = 'test ! -f /backup/pg_wal/%f && cp %p /backup/pg_wal/%f'  # ★ 替换为你的归档路径# ===================== 日志配置(故障排查必开)=====================
logging_collector = on               # ★ 开启日志收集
log_directory = '/var/log/postgresql'# ★ 绝对路径,便于管理
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_min_duration_statement = 1000    # ★ 记录>1s的慢SQL
log_statement = 'ddl'                # ★ 记录建表/删索引等关键操作
log_connections = on                 # ★ 审计连接行为
log_disconnections = on              # ★ 审计断开行为
log_lock_waits = on                  # ★ 记录锁等待,排查死锁
log_checkpoints = on                 # 分析IO峰值原因
log_timezone = 'Asia/Shanghai'
timezone = 'Asia/Shanghai'# ===================== 自动清理(避免表膨胀)=====================
autovacuum = on                      # ★ 禁止关闭
autovacuum_vacuum_scale_factor = 0.1 # ★ 大表触发清理比例从20%降至10%
autovacuum_analyze_scale_factor = 0.05 # 加速统计信息更新
autovacuum_max_workers = 4           # 8核CPU设为4,按核心数调整# ===================== 其他安全/性能配置=====================
deadlock_timeout = 1s                # 保留默认,快速检测死锁
jit = off                            # 简单查询场景关闭JIT,节省CPU

二、高写入/主从集群版(16GB内存/高并发)

适用于物理内存16GB、高写入(电商/金融)、主从集群场景:

# ===================== 连接与认证=====================
listen_addresses = '192.168.1.0/24'
port = 5433
max_connections = 500
password_encryption = scram-sha-256# ===================== 内存配置=====================
shared_buffers = 4GB                 # 16GB内存的25%
work_mem = 16MB                      # 大查询场景调大
maintenance_work_mem = 2GB           # 加速批量操作
effective_cache_size = 12GB          # 16GB内存的75%
temp_file_limit = 2GB# ===================== WAL与检查点=====================
wal_level = replica
fsync = on
synchronous_commit = remote_write    # 高吞吐场景,主从同步到从库磁盘后返回
checkpoint_timeout = 30min           # 进一步降低检查点频率
max_wal_size = 8GB                   # 高写入场景调大
min_wal_size = 2GB
archive_mode = on
archive_command = 'test ! -f /backup/pg_wal/%f && cp %p /backup/pg_wal/%f'# ===================== 主从复制(集群必配)=====================
max_wal_senders = 5                  # 3个从库+2预留
max_replication_slots = 4            # 从库数+1
wal_keep_size = 128MB                # 防止从库同步时WAL被删
hot_standby = on                     # 从库允许只读查询# ===================== 日志配置=====================
logging_collector = on
log_directory = '/var/log/postgresql'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_min_duration_statement = 500     # 记录>0.5s的慢SQL,更精准
log_statement = 'mod'                # 故障排查期记录增删改
log_connections = on
log_disconnections = on
log_lock_waits = on
log_checkpoints = on
log_timezone = 'Asia/Shanghai'
timezone = 'Asia/Shanghai'# ===================== 自动清理=====================
autovacuum = on
autovacuum_vacuum_scale_factor = 0.05 # 超大表触发清理比例降至5%
autovacuum_analyze_scale_factor = 0.05
autovacuum_max_workers = 6           # 16核CPU设为6# ===================== 其他配置=====================
deadlock_timeout = 1s
jit = on                             # 复杂查询场景开启JIT加速

三、配置修改&生效说明

  1. 修改方式
    • 推荐用 ALTER SYSTEM SET 命令(无需手动改文件,优先级更高):
      -- 示例:修改shared_buffers
      ALTER SYSTEM SET shared_buffers = '2GB';
      -- 生效配置
      SELECT pg_reload_conf();
      
    • 若手动改 postgresql.conf,修改后执行:
      sudo systemctl reload postgresql-14  # 无需重启(部分参数需重启)
      
  2. 需重启的参数(修改后必须重启数据库):
    • listen_addressesportshared_bufferswal_levelmax_wal_senders
  3. 验证配置
    -- 查看参数当前值
    SHOW shared_buffers;
    SHOW max_wal_size;
    SHOW log_min_duration_statement;
    

总结

  1. 核心必改项listen_addresses(限制网段)、shared_buffers(内存)、archive_mode(WAL归档)、logging_collector(日志)、autovacuum_vacuum_scale_factor(防膨胀);
  2. 场景化调整:内存参数按物理内存比例调整,WAL参数按写入压力调整,主从参数按从库数量调整;
  3. 安全底线fsync=onpassword_encryption=scram-sha-256 禁止修改,保障数据安全和密码安全。
http://www.jsqmd.com/news/495223/

相关文章:

  • 揭秘京东e卡变现秘诀,这些回收渠道你知道吗? - 团团收购物卡回收
  • 讲讲新疆隧道防火涂料服务商哪个靠谱,价格怎样 - myqiye
  • 替代国外品牌,国内有稳定的变压器厂家吗?
  • 【MySQL】事务:如何使用事务
  • 马斯克点赞,Karpathy 转发!Kimi 一刀拆了 Transformer 十年地基
  • 2026年 硅胶带厂家推荐排行榜,蠕动泵/导电/医用级/食品级/双色/新能源/工业级/阻燃/弹簧/耐高温硅胶带,专业定制与高适配性深度解析 - 品牌企业推荐师(官方)
  • “数字员工”重构企业生产单元
  • Nginx与frp结合实现局域网和公网的双重https服务
  • 山东一卡通线上回收靠谱吗?回收心得分享与平台推荐 - 团团收购物卡回收
  • 2026年辽宁石棉垫片好用品牌排名,专业石棉垫片加工厂推荐 - 工业推荐榜
  • 【ROS2】ROS 2 中 Content Filtering (内容过滤)的简介与使用
  • 告别网络依赖:完全离线的 AI 开发环境搭建指南
  • 【语音去噪】基于matlab融合小波变换和维纳滤波语音信号去噪(含SNR)【含Matlab源码 15192期】
  • 一部中短波发射机的一生——从出厂到退役的全生命周期成本
  • 性能测试时,通过查询数据库获取大量数据会影响整体的性能吗?
  • 搞定2026年生鲜促销图,我的经验是别直接套模板
  • AI 编程4:LangGraph 实战:动态并行 Worker 编排器模式,让 AI 多任务并行生成报告-test7
  • 〘 9-1 〙软考高项 | 第16章:项目采购管理(上)
  • 基于分解的多目标优化算法(MOEA/D) —— Matlab实现 测试函数包括:ZDT、DTL...
  • 电动压铆螺柱:高效安装,稳固可靠新选择
  • 大模型联网难题破解!数眼智能(DataEyes)全解析,5分钟解锁实时数据能力
  • 一键生成论文的软件推荐!2026年精选6款AI论文生成神器指南,为你打造高质量论文 - 掌桥科研-AI论文写作
  • 【嵌入式】外部中断的学习小坑记录
  • Git误删急救:30秒拯救你的代码
  • 深度解析贪心算法
  • 【程序员转型】开发者转型成为 AI 工程师指南,大模型入门到精通,收藏这篇就足够了!
  • 分析鲨鱼速装性价比好不好,和同行比价格贵不贵 - 工业设备
  • 8.4通过延迟补偿来提高实时性
  • 选 PyQt6 还是 PySide6?这可能是 Python GUI 开发中最“纠结”的问题
  • 3分钟搞定!OpenClaw 龙虾 + Kimi 联网搜索,小白也能上手