Re: Cause of moving-target FSM space-needed reports

From: Jeff Frost <jeff(at)frostconsultingllc(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: Cause of moving-target FSM space-needed reports
Date: 2006-09-22 00:31:28
Message-ID: Pine.LNX.4.64.0609211637470.32444@discord.home.frostconsultingllc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, 21 Sep 2006, Tom Lane wrote:

> We've seen reports occasionally of how the system reports that
> max_fsm_pages needs to be increased to at least X, and then when the DBA
> does so, it complains that some larger amount is needed --- one recent
> report is here:
> http://archives.postgresql.org/pgsql-admin/2006-06/msg00176.php
>
> I finally got around to looking at this, and I see what is going on.
> The reported number is based on the aggregate of "request" page counts
> passed by VACUUM to the FSM module. However, vacuumlazy.c is
> prefiltering its requests to at most MaxFSMPages, because it knows that
> no more than that many pages will be accepted anyway. So if you have a
> single table containing more than max_fsm_pages pages with interesting
> amounts of free space, the reported total is being artificially
> constrained, and then when you relax the constraint, the reported total
> jumps up. In the case Jeff describes where it kept saying max_fsm_pages
> plus 2608 were needed, I suppose he had boatloads of free space in one
> table (probably pg_largeobject) and exactly 2608 interesting pages in
> all other tables.

It was indeed pg_largeobject that caused all the grief. I have since put
these settings in pg_autovacuum:

vsl_cs=# select * from pg_autovacuum ;
vacrelid | enabled | vac_base_thresh | vac_scale_factor | anl_base_thresh | anl_scale_factor | vac_cost_delay | vac_cost_limit
----------+---------+-----------------+------------------+-----------------+------------------+----------------+----------------
2613 | t | 150 | 0.1 | 75 | 0.05 | -1 | -1
(1 row)

And it seems much happier these days:

INFO: free space map contains 299025 pages in 144 relations
DETAIL: A total of 296160 page slots are in use (including overhead).
296160 page slots are required to track all free space.
Current limits are: 5366499 page slots, 2000 relations, using 31572 KB.

Before the more aggressive autovacuum settings, we would have the problem crop
up again when a researcher would delete several large objects at once.
Apparently, each large object is around 80MB in size, so I suspect it's not
difficult to overwhelm autovacuum if you remove quite a few of these at one
time.

--
Jeff Frost, Owner <jeff(at)frostconsultingllc(dot)com>
Frost Consulting, LLC http://www.frostconsultingllc.com/
Phone: 650-780-7908 FAX: 650-649-1954

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2006-09-22 01:45:10 Re: Release Notes: Major Changes in 8.2
Previous Message Kevin Brown 2006-09-21 23:44:46 Re: advisory locks and permissions