RDS for PostgreSQL メジャーバージョンアップグレード後に CPU 使用率が高くなる事象の対処方法

2021.05.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

RDS for PostgreSQL のメジャーバージョンアップグレード後に、CPU 使用率が 100 %になります。どうすれば CPU の負荷を下げることができるでしょうか?

どう対応すればいいの?

RDS for PostgreSQL メジャーバージョンアップグレード後の CPU 使用率を下げるには、ANALYZE 操作で統計情報の更新を行ってください。

PostgreSQL はメジャーバージョン更新時に統計情報が移行されません。そのため、アップグレード後の実行計画がボトルネックとなり、CPU 使用率高騰の可能性があります。

AWS ドキュメントでは、RDS PostgreSQL の DB インスタンスをアップグレードする手順が完了した後、以下の操作を実行することを推奨しています。

メジャーバージョンのアップグレードを実施する方法

メジャーバージョンのアップグレードが完了したら、次のことをお勧めします。

  • pg_statistic テーブルを更新する ANALYZE 操作を実行します。

Amazon RDS が DB エンジンアップグレードで使用する pg_upgrade ユーティリティのドキュメントでも、統計情報は転送されないことが明記されています。

Statistics
Because optimizer statistics are not transferred by pg_upgrade, you will be instructed to run a command to regenerate that information at the end of the upgrade. You might need to set connection parameters to match your new cluster.

参考資料