自動バキュームおよびバキュームアクティビティのログ記録
自動バキュームアクティビティに関する情報は、rds.force_autovacuum_logging_level
パラメータで指定したレベルに基づいて postgresql.log
に送信されます。このパラメータで指定できる値、およびその値がデフォルトで設定されている PostgreSQL バージョンは次のとおりです。
-
disabled
(PostgreSQL 10、PostgreSQL 9.6) -
debug5
,debug4
,debug3
,debug2
,debug1
-
info
(PostgreSQL 12、PostgreSQL 11) -
notice
-
warning
(PostgreSQL 13 以降) -
error
、ログ、fatal
、panic
rds.force_autovacuum_logging_level
では log_autovacuum_min_duration
パラメータが使用されます。log_autovacuum_min_duration
パラメータの値はしきい値 (ミリ秒単位) です。このしきい値を超過すると、自動バキュームアクションがログに記録されます。-1
に設定するとログに何も記録されませんが、0 に設定するとすべてのアクションが記録されます。rds.force_autovacuum_logging_level
と同様に、log_autovacuum_min_duration
のデフォルト値はバージョンによって次のように異なります。
-
10000 ms
– PostgreSQL 14、PostgreSQL 13、PostgreSQL 12、および PostgreSQL 11 -
(empty)
– PostgreSQL 10 と PostgreSQL 9.6 の場合、デフォルト値はありません
rds.force_autovacuum_logging_level
を WARNING
に設定することをお勧めします。log_autovacuum_min_duration
についても 1,000~5,000 の値に設定することをお勧めします。5,000 に設定すると、5,000 ミリ秒を超える長さのアクティビティがログに記録されます。-1 以外の設定では、ロックの競合または同時に削除されたリレーションが原因で自動バキュームアクションがスキップされた場合にも、メッセージがログに記録されます。詳細については、「PostgreSQL のドキュメント」の「Automatic Vacuuming
問題のトラブルシューティングを行うために、rds.force_autovacuum_logging_level
パラメータを debug1
から debug5
までのデバッグレベルの 1 つに変更し、最も詳しい情報を取得します。デバッグ設定は、短期間かつトラブルシューティングの目的でのみ使用することをお勧めします。詳細については、「PostgreSQL のドキュメント」の「When to log
注記
PostgreSQL では、rds_superuser
アカウントが pg_stat_activity
内の autovacuum セッションを表示できます。例えば、コマンドの実行をブロックしている autovacuum セッション、あるいは手動で発行される vacuum コマンドよりも実行スピードが遅い autovacuum セッションを特定して終了することもできます。