Ok, per fare un aggiornamento: tutto sembra ancora a posto, postmaster si è calmato drasticamente e sidekiq sta tornando a muoversi molto velocemente.
Per riassumere cosa ha funzionato nel mio scenario (con il nome predefinito del database ‘discourse’):
cd /var/discourse/
./launcher enter app
sudo -u postgres psql
\c discourse
Poi, dalla console di postgres, sono stati eseguiti ciascuno dei seguenti comandi. Ciascuno richiede un po’ di tempo per completarsi, a seconda delle dimensioni del DB; i primi due comportano anche un elevato utilizzo della CPU:
VACUUM FULL VERBOSE;
REINDEX DATABASE discourse;
VACUUM VERBOSE ANALYZE;
Nota: Non ho notato alcuna differenza fino a quando non è stato eseguito VACUUM VERBOSE ANALYZE; come raccomandato da @Falco, quindi i primi due potrebbero non essere stati necessari. Tuttavia, i primi due sembravano fondamentali per risolvere questo problema in passato nella versione precedente di PostgreSQL.
Se ricevi un errore come ‘ERROR: deadlock detected’ durante REINDEX DATABASE discourse; riprova semplicemente a eseguirlo finché non funziona. Questo mi è capitato l’ultima volta (con la versione precedente di PostgreSQL).
Ci sono alcune raccomandazioni per eseguire un reindex concorrente invece del reindex sopra: PostgreSQL 12 update
Tuttavia, nota che @eboehnisch sopra ha ricevuto un errore dal reindex concorrente, vedi sopra.