Re: Cause of moving-target FSM space-needed reports - Mailing list pgsql-hackers

From Jeff Frost
Subject Re: Cause of moving-target FSM space-needed reports
Date
Msg-id Pine.LNX.4.64.0609211637470.32444@discord.home.frostconsultingllc.com
Whole thread Raw
In response to Cause of moving-target FSM space-needed reports  (Tom Lane <tgl@sss.pgh.pa.us>)
List 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@frostconsultingllc.com>
Frost Consulting, LLC     http://www.frostconsultingllc.com/
Phone: 650-780-7908    FAX: 650-649-1954


pgsql-hackers by date:

Previous
From: Kevin Brown
Date:
Subject: Re: advisory locks and permissions
Next
From: Bruce Momjian
Date:
Subject: Re: Release Notes: Major Changes in 8.2