On a Postgres 9.1 installation, I'm trying to reduce the amount of Postgres' disk usage by dropping records from tables and then running VACUUM FULL on those tables. My understanding of VACUUM FULL is that it should give disk space back to the OS, but I'm finding that this doesn't consistently happen. For one of the tables, the DELETEs and VACUUM FULL ran successfully, and the pg_database table reports a smaller size, but the disk space actually increased slightly. I can see why disk usage goes up temporarily during a VACUUM FULL operation, but the disk usage doesn't go back down afterward.

My question is, why is the disk space not being freed back to the OS after the VACUUM FULL completes? Is there something I'm missing?

edit (for posterity) This is running on CentOS 6.3, and WAL archiving is enabled.

  • 4
    WAL archives? Does pg_xlog grow during the vacuum full? Use the OS to find out what's growing - whether it's within PostgreSQL's datadir or not, and if it is, which part is growing. Does executing a CHECKPOINT reduce the size again? Commented Feb 27, 2014 at 2:19
  • After VACUUM FULL ,did the table size become smaller?
    – francs
    Commented Feb 27, 2014 at 7:42

1 Answer 1


Craig's comment was spot on--the WAL files were where the space was going. An earlier-than-usual rm gave us the space back.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.