0

我们在我们的应用程序中使用 Postgresql 9.4,并且某些表的死元组没有被正确删除。我们使用默认配置开启了 autovacuum。以下是一些日志(这会持续一整天):

< 2021-11-30 00:31:30.703 EST >LOG:  automatic vacuum of table "erp.public.example_table": index scans: 0
    pages: 0 removed, 71343 remain
    tuples: 0 removed, 2106528 remain, 1133145 are dead but not yet removable
    buffer usage: 62922 hits, 103385 misses, 172 dirtied
    avg read rate: 2.413 MB/s, avg write rate: 0.004 MB/s
    system usage: CPU 1.24s/0.82u sec elapsed 334.71 sec

< 2021-11-30 00:48:10.794 EST >LOG:  automatic vacuum of table "erp.public.example_table": index scans: 0
    pages: 0 removed, 71343 remain
    tuples: 0 removed, 2107145 remain, 1133466 are dead but not yet removable
    buffer usage: 62876 hits, 103433 misses, 75 dirtied
    avg read rate: 2.998 MB/s, avg write rate: 0.002 MB/s
    system usage: CPU 1.15s/0.73u sec elapsed 269.55 sec

< 2021-11-30 00:58:27.625 EST >LOG:  automatic vacuum of table "erp.public.example_table": index scans: 0
    pages: 0 removed, 71343 remain
    tuples: 0 removed, 2107347 remain, 1133476 are dead but not yet removable
    buffer usage: 62876 hits, 103433 misses, 14 dirtied
    avg read rate: 2.419 MB/s, avg write rate: 0.000 MB/s
    system usage: CPU 1.18s/0.85u sec elapsed 333.99 sec

< 2021-11-30 01:39:59.626 EST >LOG:  automatic vacuum of table "erp.public.example_table": index scans: 0
    pages: 0 removed, 71343 remain
    tuples: 0 removed, 2107627 remain, 1133724 are dead but not yet removable
    buffer usage: 62857 hits, 103454 misses, 44 dirtied
    avg read rate: 2.446 MB/s, avg write rate: 0.001 MB/s
    system usage: CPU 1.28s/0.83u sec elapsed 330.44 sec

< 2021-11-30 01:52:16.303 EST >LOG:  automatic vacuum of table "erp.public.example_table": index scans: 0
    pages: 0 removed, 71343 remain
    tuples: 0 removed, 2107741 remain, 1133724 are dead but not yet removable
    buffer usage: 62878 hits, 103431 misses, 3 dirtied
    avg read rate: 2.426 MB/s, avg write rate: 0.000 MB/s
    system usage: CPU 0.75s/0.78u sec elapsed 333.01 sec

< 2021-11-30 02:33:24.258 EST >LOG:  automatic vacuum of table "erp.public.example_table": index scans: 0
    pages: 0 removed, 71343 remain
    tuples: 0 removed, 2107731 remain, 1133919 are dead but not yet removable
    buffer usage: 62880 hits, 103447 misses, 32 dirtied
    avg read rate: 3.414 MB/s, avg write rate: 0.001 MB/s
    system usage: CPU 1.09s/0.71u sec elapsed 236.70 sec

如您所见,vacuum 至少需要 200 秒并且没有删除任何元组。这也发生在其他表上。已经检查常见原因:

  • 长时间运行的事务
  • 未提交的准备好的事务。
  • 过时的复制槽。

但这些都不适用于我们的案例

4

0 回答 0