Web服务器使用的大型PostgreSQL数据库。服务器通常会收到稳定的请求负载(最多〜1000rps),每个请求都会将一行插入几个表中。由于插入的行均在另一个表中引用同一行,因此会产生许多锁和

问题描述 投票:0回答:1

如果autovacuum太慢,则应加快速度:

启动

autovacuum_vacuum_cost_limit

会使自动伏量降低频率较低,从而使其更快

降低
postgresql autovacuum
1个回答
0
投票
将缩短这些暂停,也可以使自动vas速更快

    要在桌子上调整autovacuum尽可能快,您可以运行
  • ALTER TABLE tab SET (autovacuum_vacuum_cost_delay = 0);

    then Autovacuum将不停下来运行。
    
    此外,您应该给Autovacuum足够的内存,以使其通过筹集

    maintenance_work_mem
  • 如果仍然不够,也许它有助于早些时候开始清理。这是通过降低该表来完成的,例如

    autovacuum_multixact_freeze_max_age

    如果您不及时完成所有这些调整,那么唯一的解决方案就是划分表。然后,Autovacuum可以并行在所有分区上运行(您可能需要增加

    ALTER TABLE tab SET (autovacuum_multixact_freeze_max_age = 50000000);
  • ),并且应该及时完成。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.