PostgreSQL – VACUUM FULL does not free space back to the OS

postgresql

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.

Best Answer

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.