《PGSQL运维优化提升vacuum执行时间观测能力-杨向博.pdf》由会员分享,可在线阅读,更多相关《PGSQL运维优化提升vacuum执行时间观测能力-杨向博.pdf(22页珍藏版)》请在三个皮匠报告上搜索。
1、PostgreSQLPostgreSQL运维优化运维优化提升vacuum执行时间观测能力IvorySQL 2025IvorySQL 2025生态大会生态大会暨暨PostgreSQLPostgreSQL高峰论坛高峰论坛杨向博 PostgreSQL ACEv vacuum监控的重要性监控的重要性监控执行时长的痛点监控执行时长的痛点提升执行时长观测能力提升执行时长观测能力DBADBA上手内核的感悟上手内核的感悟目录CONTENTSIvorySQL 2025IvorySQL 2025生态大会生态大会暨暨PostgreSQLPostgreSQL高峰论坛高峰论坛01.vacuum01.vacuum监控的重
2、要性监控的重要性IvorySQL 2025IvorySQL 2025生态大会生态大会暨暨PostgreSQLPostgreSQL高峰论坛高峰论坛vacuumvacuum监控的重要性监控的重要性vacuumvacuum会做什么?会做什么?IvorySQL 2025IvorySQL 2025生态大会生态大会暨暨PostgreSQLPostgreSQL高峰论坛高峰论坛1.移除死元组移除每一页中的死元组,并对每一页内的 活元组进行碎片整理。移除指向死元组的索引元组。2.冻结旧的事务标识(txid)如有必要,冻结旧元组的事务标识(txid)。更新与冻结事务标识相关的系统视图 (pg_database与p
3、g_class)。如果可能,移除非必需的提交日志(clog)。3.其他更新已处理表的空闲空间映射(FSM)和 可见性映射(VM)。更新一些统计信息(pg_stat_all_tables等)。1 https:/pg- https:/www.interdb.jp/pg/pgsql06/01.htmlvacuumvacuum监控的重要性监控的重要性vacuumvacuum不合理的风险?不合理的风险?IvorySQL 2025IvorySQL 2025生态大会生态大会暨暨PostgreSQLPostgreSQL高峰论坛高峰论坛空间“膨胀”统计信息偏差,SQL性能劣化transaction ID wra
4、paround or multixact ID wraparound3 https:/www.postgresql.org/docs/17/routine-vacuuming.html02.02.监控执行时长的痛点监控执行时长的痛点IvorySQL 2025IvorySQL 2025生态大会生态大会暨暨PostgreSQLPostgreSQL高峰论坛高峰论坛监控执行时长的痛点监控执行时长的痛点vacuumvacuum怎么监控?怎么监控?IvorySQL 2025IvorySQL 2025生态大会生态大会暨暨PostgreSQLPostgreSQL高峰论坛高峰论坛统计信息视图:pg_stat_a
5、ll(user)_tables 进度报告视图:pg_stat_progress_vacuum(analyze)vacuum command:verbose option4 https:/postgres- 2025IvorySQL 2025生态大会生态大会暨暨PostgreSQLPostgreSQL高峰论坛高峰论坛5 https:/www.postgresql.org/docs/17/runtime-config-statistics.htmlVacuum:verbose option/log_min_duration_statement Autovtovacuum:log_autovacuu
6、m_min_duration 因此要查看表(auto)vacuum的时长,几乎只能在server log中查看:log阈值参数取值,需要在是否记录大部分表vacuum和产生的日志条目占用的存储空间中权衡不是所有人员都有主机权限去访问日志即使将server log做成日志服务,检索和分析起来也不是很方便大多时候表的vacuum历史执行时长对于我们精细化vacuum调优来说是很必要的。比如结合表的SQL性能表现,确定vacuum的执行频率,是否调参加速。03.03.提升执行时长观测能力提升执行时长观测能力IvorySQL 2025IvorySQL 2025生态大会生态大会暨暨PostgreSQLP