Hubert 'depesz' Lubaczewski:等待 PostgreSQL 18 - 向进度视图添加基于成本的延迟时间
内容提要
2025年2月11日,Nathan Bossart提交补丁,向pg_stat_progress_vacuum和pg_stat_progress_analyze视图添加了基于成本的延迟时间。新增参数track_cost_delay_timing用于收集信息,显示vacuum因成本延迟而睡眠的时间,增强了进度监控的细节。
关键要点
-
2025年2月11日,Nathan Bossart提交补丁,向pg_stat_progress_vacuum和pg_stat_progress_analyze视图添加基于成本的延迟时间。
-
新增参数track_cost_delay_timing用于收集信息,显示vacuum因成本延迟而睡眠的时间。
-
该补丁增强了进度监控的细节,报告了与vacuum相关的并行工作者的睡眠时间。
-
2016年首次引入vacuum进度的简单报告,之后进行了多次改进。
-
新变化提供了vacuum运行中因成本延迟而等待的时间信息。
-
通过修改设置,手动运行vacuum时也会出现成本延迟。
-
测试中创建了一个900MB的表,并对其进行了vacuum操作。
-
在vacuum运行期间,pg_stat_progress_vacuum视图显示了进度信息,包括延迟时间。
-
测试结果显示,vacuum在582264.662毫秒的总时间中,有98.9%的时间用于睡眠。
-
该工具的引入被认为是一个重要的改进,值得在pg日志中记录相关信息。
延伸解读
成本延迟的影响
新增的track_cost_delay_timing参数能够帮助数据库管理员更好地理解vacuum操作中的成本延迟。这一信息的收集使得用户能够识别出vacuum在执行过程中因成本限制而导致的睡眠时间,从而优化数据库性能。
监控进度的细节
pg_stat_progress_vacuum视图的改进使得用户可以实时监控vacuum的执行状态,包括并行工作者的睡眠时间。这种细致的监控能够帮助用户及时调整vacuum的设置,以提高数据库的维护效率。
历史背景与演变
自2016年首次引入vacuum进度报告以来,PostgreSQL在这一功能上进行了多次改进。此次补丁的发布标志着对vacuum进度监控的又一次重要升级,反映了社区对性能优化的持续关注。
延伸问答
PostgreSQL 18中新增了什么功能?
新增了基于成本的延迟时间监控功能,增强了pg_stat_progress_vacuum和pg_stat_progress_analyze视图的细节。
track_cost_delay_timing参数的作用是什么?
该参数用于收集vacuum因成本延迟而睡眠的时间信息,默认关闭。
vacuum操作中延迟时间的测试结果如何?
测试显示,vacuum在582264.662毫秒的总时间中,有98.9%的时间用于睡眠。
如何手动运行vacuum并观察延迟时间?
通过修改设置,手动运行vacuum时可以观察到成本延迟,使用pg_stat_progress_vacuum视图查看进度信息。
vacuum进度监控的历史背景是什么?
2016年首次引入vacuum进度的简单报告,之后进行了多次改进以提供更多信息。
这个补丁对PostgreSQL的影响是什么?
该补丁被认为是一个重要的改进,增强了进度监控的细节,值得在pg日志中记录相关信息。