Automatic autovacuum to prevent wraparound - PG13.5 - Mailing list pgsql-general

From Mauro Farracha
Subject Automatic autovacuum to prevent wraparound - PG13.5
Date
Msg-id CAAhWs6BDVPYJ3_cei-wLyFVToWiUza2kkkZD2pevxuGAn3-K2Q@mail.gmail.com
Whole thread Raw
Responses Re: Automatic autovacuum to prevent wraparound - PG13.5  (Laurenz Albe <laurenz.albe@cybertec.at>)
Re: Automatic autovacuum to prevent wraparound - PG13.5  (Peter Geoghegan <pg@bowt.ie>)
List pgsql-general
Hello guys,

Have recently upgraded from PG10 to PG13.5 and would like to understand the reason why we are seeing triggered autovacuum to prevent the wraparound while all the metrics are still far off from the multixact/freeze max ages defined. And inclusive there was one time where it was triggered as aggressive.

Some background:
- autovacuum_freeze_max_age: 400M
- autovacuum_multixact_freeze_max_age: 800M
- the activity is mostly insert intensive in one particular table (60M daily)
- the team execute vacuum freeze verbose every day at night to keep the multixact ids down
- we generally reach near 70M mxids before running vacuum freeze at night
- the postgresql is Aurora

The scenario:
- Out of nowhere (during the weekend), without database activity load or batches running, with previous nightly run of vacuum freeze, in the middle of the day, with xids and mxids below 20M we are seeing autovacuum being triggered to prevent wraparound.

My question is why this is occurring, which condition might be responsible for this behaviour? 

pgsql-general by date:

Previous
From: Ian Dauncey
Date:
Subject: RE: PostgreSQL 12.2 on Linux ubuntu 20.4 / s390
Next
From: Ray O'Donnell
Date:
Subject: Re: PostgreSQL 12.2 on Linux ubuntu 20.4 / s390