異常に高いCPU使用率

(スワップではなく、ディスクから読み取っている)

これは私の以前の観測と一致します:

これはリレーションとインデックスのサイズであることに注意してください。pg_relation_sizeと比較してください。

これはPeriodicalUpdatesの一部であるScoreCalculatorからのものです。

これは解決すべきあなたの発見です。比較のために、ここではメタ(meta)ではJobs::EnsureDbConsistencyが2分未満、Jobs::TopRefreshOlderが10秒未満で実行されます。

Postgresはより多くのメモリを必要とします。可能な限り多く割り当ててください。

また、VACUUM ANALYZEまたはVACUUM ANALYZE FULLから利益を得る可能性があります。最初のものは実行しても害はありません。

私はおそらく次の順序で実行します。

  • vacuum analyze
  • sidekiqを一時停止してからvacuum analyze full(これによりテーブルがフリーズされ、完全に書き直されます。実行中はいくつかの失敗が発生する可能性があります)
  • postgresにより多くのメモリを割り当てる
「いいね!」 1