(不是交换空间,但它们正在从磁盘读取)
这与我早先的观察结果一致:
请注意,这是关系和索引的大小。与 pg_relation_size 进行比较。
这来自 ScoreCalculator,它是 PeriodicalUpdates 的一部分。
这是您需要解决的发现。相比之下,在 meta 上 Jobs::EnsureDbConsistency 耗时不到 2 分钟,而 Jobs::TopRefreshOlder 耗时不到 10 秒:
Postgres 需要更多的内存。尽可能多地分配给它。
您也可能会从 VACUUM ANALYZE 或 VACUUM ANALYZE FULL 中受益。执行前者永远没有坏处。
我可能会按顺序执行以下操作:
vacuum analyze- 暂停 sidekiq 然后
vacuum analyze full(这将冻结表以完全重写它们,运行期间可能会出现一些失败) - 为 postgres 增加更多内存

