On the MendixCloud autovacuum is turned on, but the operation you need it to reclaim the whitespace caused by fragmentation of the database is FullVacuum. This operation is not performed by Mendix, because it still requires a shutdown of the database.
In order to reclaim the whitespace and remove the fragmentation you should perform the the backup and restore action.
The cause of all this is fragmentation of the database. Their advise was to limit the commits to the database only to objects you really want to store, otherwise user for instance non-persistent objects or do not commit.
Postgres documentation says:
PostgreSQL's VACUUM command must be run on a regular basis for several reasons: To recover disk space occupied by updated or deleted rows. To update data statistics used by the PostgreSQL query planner. To protect against loss of very old data due to transaction ID wraparound.
I would suggest to make it a configurable schedule, so we can run it for example overnight or in the weekend.
Maybe a regular reindex is needed, see this
Just to be sure since we are a couple of years further now... Is there still no better way to perform / force a “Full Vacuum” than do a manual backup and restore?