VACUUM需要很多时间

时间:2019-11-24 06:03:26

标签: postgresql postgresql-11

以下命令VACUUM my_table已在Postgres(v11.5)上运行了24小时

表周围:

  • 1.12亿行
  • 表空间:193 GB
  • 6个不同字段上的6个索引+主键索引

这正常吗?

有帮助的更多信息...

  • AWS RDS实例
  • 16GB内存+ 4个vCPU(db.m5.xlarge)
  • 800GB的已分配存储空间(到目前为止,数据库已占用495GB的空间)
  • 提供的IOPS-10000

在此处添加更多信息-

  • SELECT relname, n_dead_tup FROM pg_stat_user_tables;返回163441017
  • 我们没有针对数据库运行任何应用程序查询,我们希望让数据库完成清理过程

1 个答案:

答案 0 :(得分:0)

可以。也许您的16GB RAM太低,无法有效处理大表(190GB)。非常通用的规则说,因此RAM的大小应约为1/10 db。

您可以检查的内容:

a)查看表pg_stat_activity进行相关处理,并检查vacuum是否未处于等待锁定状态。

b)如果可以,请检查与IO相关的指标。也许在那里您会看到大量的IO等待-这是信号,因此您的IO超载了,然后vacuum可能会很慢。表193GB确实很大。