暂无图片
PostgreSQL 高并发下 VACUUM 引起性能抖动怎么优化?
我来答
分享
暂无图片 匿名用户
PostgreSQL 高并发下 VACUUM 引起性能抖动怎么优化?

PostgreSQL 高并发下 VACUUM 引起性能抖动怎么优化?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
陈耀斌

1. 精细化调整 AUTOVACUUM 参数

2.分区表策略,尽量减少全表扫描
3.冻结事务优化(预防 Transaction ID 回卷)避免紧急 VACUUM FREEZE 导致的性能雪崩.

高并发场景专项优化

1) 错峰调度 VACUUM
2)在业务低峰期手动执行清理
暂无图片 评论
暂无图片 有用 0
R
reddey

VACUUM 本身开销还是比较大的,如果手工操作,还是选择业务低峰操作。

暂无图片 评论
暂无图片 有用 0
R
reddey

postgres@localhost data]$ grep vacuum postgresql.conf
#autovacuum_work_mem = -1 # min 1MB, or -1 to use maintenance_work_mem
#vacuum_cost_delay = 0 # 0-100 milliseconds (0 disables)
#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 2 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits
#vacuum_cost_limit = 200 # 1-10000 credits
#vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed
#log_autovacuum_min_duration = 10min # log autovacuum activity;
#autovacuum = on # Enable autovacuum subprocess? 'on'
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
#autovacuum_vacuum_insert_threshold = 1000 # min number of row inserts
# before vacuum; -1 disables insert
# vacuums
#autovacuum_analyze_threshold = 50 # min number of row updates before
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
#autovacuum_vacuum_insert_scale_factor = 0.2 # fraction of inserts over table
# size before insert vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
#autovacuum_multixact_freeze_max_age = 400000000 # maximum multixact age
# before forced vacuum
#autovacuum_vacuum_cost_delay = 2ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
#vacuum_freeze_table_age = 150000000
#vacuum_freeze_min_age = 50000000
#vacuum_failsafe_age = 1600000000
#vacuum_multixact_freeze_table_age = 150000000
#vacuum_multixact_freeze_min_age = 5000000
#vacuum_multixact_failsafe_age = 1600000000

autovacuum相关参数可以微调一下

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏