问题描述
在我的应用程序 n 中,微服务在 m 节点上运行。每个微服务都有其自己的数据库,并负责不时发布VACUUM ANALYZE
。
由于对于每个微服务来说,此日常作业的调度是相同的,所以在我的幼稚实现中,我有 m 个相同微服务的实例同时执行VACUUM ANALYZE
命令。 / p>
这会带来问题吗?
我猜不是,因为PostgreSQL将检测并行调用并优雅地处理这种情况。但我想确定。
解决方法
否,您最终可能会同时运行多个VACUUM
进程,这可能对整体性能不利。
更好的解决方案是让autovacuum处理此问题。参数autovacuum_max_workers
限制了可以在单个PostgreSQL集群中同时运行的自动清理工作程序的数量。
适当调整自动真空,然后它应根据需要的频率和速度运行。