Postgresqlバージョンアップ後のSlow Sidekiq + PostmasterでCPU(32コア)使用率が95%超に

さて、フォローアップですが、すべて順調で、postmaster の負荷が劇的に落ち着き、sidekiq も再び非常に高速に動作しています。

私の環境(デフォルトの DB 名は ‘discourse’)で機能した手順をまとめます。

cd /var/discourse/
./launcher enter app
sudo -u postgres psql
\c discourse

次に、postgres コンソールから以下のコマンドをそれぞれ実行してください。DB のサイズに応じて完了までに少し時間がかかります。特に最初の 2 つでは CPU 使用率が高くなります。

VACUUM FULL VERBOSE;

REINDEX DATABASE discourse;

VACUUM VERBOSE ANALYZE;

注:@Falco さんの推奨通り「VACUUM VERBOSE ANALYZE;」を実行するまで変化に気づきませんでした。そのため、最初の 2 つのコマンドは不要だったかもしれません。ただし、最初の 2 つは、以前の Postgresql バージョンにおいてこの問題を解決する鍵となったようです(過去の記事を参照)。

「REINDEX DATABASE discourse;」の実行中に「ERROR: deadlock detected」というエラーが表示された場合は、成功するまで再度実行してみてください。これは前回(以前の Postgresql バージョン)に私自身も経験しました。

上記の reindex の代わりに、同時実行可能な reindex を実行するという推奨事項もあります:PostgreSQL 12 update

ただし、上記の @eboehnisch さんは同時実行 reindex でエラーが発生したようです(こちらを参照)。

「いいね!」 8