Re: A way to let Vacuum warn if FSM settings are low. - Mailing list pgsql-patches

From Simon Riggs
Subject Re: A way to let Vacuum warn if FSM settings are low.
Date
Msg-id 1109251491.20045.23.camel@localhost.localdomain
Whole thread Raw
In response to Re: A way to let Vacuum warn if FSM settings are low.  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: A way to let Vacuum warn if FSM settings are low.  (Ron Mayer <rm_pg@cheapcomplexdevices.com>)
List pgsql-patches
On Wed, 2005-02-23 at 19:31 -0500, Tom Lane wrote:
> Ron Mayer <rm_pg@cheapcomplexdevices.com> writes:
> > +    if (needed > MaxFSMPages)
> > +        ereport(WARNING,
> > +            (errmsg("max_fsm_pages(%d) is smaller than total pages needed(%.0f)",
> > +             MaxFSMPages, needed)));
>
> An unconditional WARNING seems a bit strong to me for a case that is not
> necessarily wrong.  Depending on the needs of the installation, this
> might be a perfectly acceptable situation --- for example if you have
> lots of large read-mostly tables.

The patch seems very useful to me. I had been thinking about doing
something like that myself.

VACUUM uses an INFO to provide the "total pages needed", so it should be
a simple matter to change the ereport to an INFO rather than WARNING as
well.

It would be great to have both lines of INFO, so that VACUUM would
produce output like this:

patched=# vacuum;
INFO: free space map: 77 relations, 470 pages stored
INFO: max_fsm_pages(1601) is smaller than total pages needed(2832)
DETAIL: Allocated FSM size: 100 relations + 1601 pages = 19 kB shared
memory.
VACUUM

...where the second info line was conditional...like this...

+    if (numRels == MaxFSMRelations)
+        ereport(WARNING,
+            (errmsg("max_fsm_relations(%d) may be set too low",
+             MaxFSMRelations)));
+    else
+    if (needed > MaxFSMPages)
+        ereport(INFO,
+            (errmsg("max_fsm_pages(%d) is smaller than total pages
needed(%.0f)",
+             MaxFSMPages, needed)));

     ereport(elevel,
             (errmsg("free space map: %d relations, %d pages stored;
%.0f total pages needed",

Which goes more towards Tom's gripes.

The manual could have a line added to explain that if max_fsm_relations
is set too low, then max_fsm_pages may also inadvertently be too low,
yet not be obvious that that is the case.

Best Regards, Simon Riggs


pgsql-patches by date:

Previous
From: Christopher Kings-Lynne
Date:
Subject: Re: A way to let Vacuum warn if FSM settings are low.
Next
From: Ron Mayer
Date:
Subject: Re: A way to let Vacuum warn if FSM settings are low.