Christopher Browne wrote: > [EMAIL PROTECTED] (Aleksey Serba) wrote: > >> Hello! >> >> I have 24/7 production server under high load. >> I need to perform vacuum full on several tables to recover disk >> space / memory usage frequently ( the server must be online during >> vacuum time ) > > > The main thought is: "Don't do that." > > It is almost certainly the wrong idea to do a VACUUM FULL. > > Assuming that the tables in question aren't so large that they cause > mass eviction of buffers, it should suffice to do a plain VACUUM (and > NOT a "VACUUM FULL") on the tables in question quite frequently.
This is easy to say and almost impraticable. I run a 7.4.5 with the autovacuum:
pg_autovacuum -d 3 -v 300 -V 0.5 -S 0.8 -a 200 -A 0.8
I have also a "vacuumdb -z -v -a" running each six hours and if i don't execute a vacuum FULL for one weeks I collect almost 400 MB of dead rows :-( For this reason even with a 7.4.5 I'm obliged to run a vacuum full at least once a week and a reindex once a month.
And my FSM parameters are large enough:
INFO: free space map: 141 relations, 26787 pages stored; 26032 total pages needed DETAIL: Allocated FSM size: 1000 relations + 2000000 pages = 11780 kB shared memory.
Regards Gaetano Mendola
PS: I do not have any "idle in transaction" connections around.
---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faqs/FAQ.html