Hello
My vacuums have suddenly started to fail, seemingly at random. I am confused.
I'm running 8.1.3, with close to a dozen servers, up to 150 databases each. I have 8GB of RAM. Vacuums have started to fail on all servers (though only the occasional vacuum) with the following error:
VACUUM,ERROR: out of memory
VACUUM,DETAIL: Failed on request of size 268435452
I have some terrible tables that I inherited for which I recently created tons of indexes in order to make them useful. I had a post a couple of weeks ago detailing my problem with trying to get a function working to simplify the data...I fell back on indexes where the column values were not null/empty. Since they are almost always null/empty, I was able to dramatically speed up access without eating up much disk space, but I did throw an extra 200 indexes into each database. Shortly after I started getting occasional vacuum failures with the above error.
I'm not sure if it's a coincidence or not, but my maintenance_work_mem is set to 262144 KB, which matches the failed request size above.
I initially assumed that with 200*150 additional relations, I was messing up my max_fsm_relations setting, which is 60,000. However, as a test a ran a verbose vacuum analyze on a small table to get the statistics at the end, from which I got the following:
INFO: free space map contains 2239943 pages in 28445 relations
DETAIL: A total of 2623552 page slots are in use (including overhead).
2623552 page slots are required to track all free space.
Current limits are: 8000000 page slots, 60000 relations, using 50650 KB.
which seems to indicate I'm well within my limits.
(for curiosity's sake, which relations count towards that limit? From what I can tell it's only tables and indexes...functions, views, triggers, etc shouldn't contribute, should they?)
Am I interpreting this wrong? Anyone have any insight as to what is going wrong? I can provide more information if needed...
Thanks,