PostgreSQL will vacuum aggressively when it detects the possibility of transaction ID wraparound. This is controlled with the vacuum_failsafe_age and vacuum_multixact_failsafe_age configuration parameters.
vacuum_failsafe_age
vacuum_multixact_failsafe_age