Chris,
> Sorry for the confusion here. I can't run any sort of vacuum durin the day
> due to performance hits. However, I have run vacuums at night. Several
> nights a week I run a vacuumdb -f -z on all of the clusters. I can take
> serveral hours to complete, but it does complete.
Well, here's your first problem: since your FSM pages is low, and you're only
vacuuming once a day, you've got to have some serious table and index bloat.
SO you're going to need to do VACUUM FULL on all of your databases, and then
REINDEX on all of your indexes.
After that, raise your max_fsm_pages to something useful, like 1,000,000. Of
course, data on your real rate of updates would help more.
If you're getting severe disk choke when you vacuum, you probably are I/O
bound. You may want to try something which allows you to vacuum one table
at a time, either pg_autovacuum or a custom script.
--
Josh Berkus
Aglio Database Solutions
San Francisco