Version of pg server is 8.3.10
We have some very large tables (78 gb/ 60m rows, 132 gb/90m rows).
Storage is mounted NFS on a netapp 3160 (pretty fast I/O).
However, the tables have been autovacuuming for over 3 days (from querying pg-stat-activity).
The current_query column value is : “autovacuum: VACUUM public.error (to prevent wraparound)”, with similar messages on the other two.
I have read the section in the manual describing auto-vacuum behavior:
http://www.postgresql.org/docs/8.3/interactive/routine-vacuuming.html#AUTOVACUUM
Ok – so here are my questions:
1. Am I correct in assuming the following?
a. Auto-vacuum workers are throttled to minimize system load – this would account for the long running time of the auto-vacuum workers which I am currently observing?
b. While it is possible to turn off auto-vacuum for most reasons, it is not desirable (or possible) to avoid auto-vacuum when the table is in a potential transaction wraparound state: hence the auto-vacuum message “to prevent wraparound” in the pg_stat_activity table?
2. Would a regular (i.e. daily) cron-scheduled job of “vacuum analyze verbose” on the tables in question do this task any better?
3. Am I correct to be concerned about the long running time of the auto-vacuum workers?
Thanks in advance for your time
Mr