Sidekiq lento + Postmaster che utilizza oltre il 95% di CPU (32 core) dopo l'aggiornamento della versione di PostgreSQL

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.