네, 후속 보고로, 현재까지 모든 것이 정상적으로 보입니다. postmaster의 상태가 크게 안정되었고, sidekiq도 다시 매우 빠르게 동작하고 있습니다.
제 환경(기본 DB 이름이 'discourse’인 경우)에서 효과적이었던 내용을 요약하면 다음과 같습니다:
cd /var/discourse/
./launcher enter app
sudo -u postgres psql
\c discourse
그 다음 postgres 콘솔에서 아래 명령어들을 각각 실행했습니다. DB 크기에 따라 완료까지 시간이 다소 소요되며, 처음 두 명령어는 CPU 사용량이 특히 높았습니다:
VACUUM FULL VERBOSE;
REINDEX DATABASE discourse;
VACUUM VERBOSE ANALYZE;
참고: @Falco의 추천에 따라 VACUUM VERBOSE ANALYZE;를 실행했을 때 비로소 차이를 체감했습니다. 따라서 처음 두 명령어는 필수적이지 않았을 수 있습니다. 다만, 이전 버전의 Postgresql에서 과거에 이 문제를 해결할 때 처음 두 명령어가 핵심적인 역할을 한 것으로 보입니다.
REINDEX DATABASE discourse; 실행 중 'ERROR: deadlock detected’와 같은 오류가 발생하면, 작동할 때까지 다시 실행해 보세요. 지난번(이전 Postgresql 버전)에도 이런 일이 있었습니다.
위 재인덱싱 대신 동시 재인덱싱(concurrent reindex)을 실행하라는 권장 사항이 있습니다: PostgreSQL 12 update
다만, 위에서 언급했듯이 @eboehnisch가 동시 재인덱싱에서 오류를 겪은 적이 있으니 참고하시기 바랍니다. 상단 참조.