Skip site navigation (1) Skip section navigation (2)

Re: [PATCHES] A way to let Vacuum warn if FSM settings are low.

From: Ron Mayer <rm_pg(at)cheapcomplexdevices(dot)com>
To: Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: Ron Mayer <rm_pg(at)cheapcomplexdevices(dot)com>,Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,pgsql-general(at)postgresql(dot)org, pgsql-patches(at)postgresql(dot)org
Subject: Re: [PATCHES] A way to let Vacuum warn if FSM settings are low.
Date: 2005-02-27 20:07:03
Message-ID: Pine.LNX.4.58.0502271135410.26845@greenie.cheapcomplexdevices.com (view raw or flat)
Thread:
Lists: pgsql-generalpgsql-patches
On Sun, 27 Feb 2005, Simon Riggs wrote:
> On Fri, 2005-02-25 at 16:48 -0800, Ron Mayer wrote:
> > Getting closer?
> For me, yes.  [...]
> The not-warnings seem a little wordy for me, but they happen when and
> how I would hope for. 
> 
> So, for me, it looks like a polish of final wording and commit.

Thanks for the feedback.  How about I replace the grammatically poor:

 LOG:  max_fsm_relations(%d) is equal than the number of relations vacuum checked (%d)",
 HINT:  You probably have more than %d relations. You should increase max_fsm_relations. Pages needed for 
max_fsm_pages may have been underestimated. 

with this:

 LOG:  max_fsm_relations(100) equals the number of relations checked
 HINT:  You have >= 100 relations. You should increase max_fsm_relations.


and replace this:

 LOG:  max_fsm_pages(%d) is smaller than the actual number of page slots needed(%.0f)",
 HINT:  You may want to increase max_fsm_pages to be larger than %.0f"

with the slightly smaller

 LOG:  the number of page slots needed (2832) exceeds max_fsm_pages (1601)
 HINT:  You may want to increase max_fsm_pages to a value over 2832.


These updated messages would fit on an 80-column display if the numbers 
aren't too big.   Here's 80 characters for a quick reference.
 01234567890123456789012345678901234567890123456789012345678901234567890123456789
The "pages needed...underestimate" in the first message was no longer 
useful anyway; since it's no longer logging fsm_pages stuff when the
max_fsm_relations condition occurred anyway

  Ron

The patch now looks like:

================================================================================
% diff -u postgresql-8.0.1/src/backend/storage/freespace/freespace.c postgresql-patched/src/backend/storage/freespace/freespace.c
--- postgresql-8.0.1/src/backend/storage/freespace/freespace.c    2004-12-31 14:00:54.000000000 -0800
+++ postgresql-patched/src/backend/storage/freespace/freespace.c    2005-02-27 11:54:39.776546200 -0800
@@ -705,12 +705,25 @@
     /* Convert stats to actual number of page slots needed */
     needed = (sumRequests + numRels) * CHUNKPAGES;
 
-    ereport(elevel,
-            (errmsg("free space map: %d relations, %d pages stored; %.0f total pages needed",
+    ereport(INFO,
+            (errmsg("free space map: %d relations, %d pages stored; %.0f total pages used",
                     numRels, storedPages, needed),
-             errdetail("Allocated FSM size: %d relations + %d pages = %.0f kB shared memory.",
+             errdetail("FSM size: %d relations + %d pages = %.0f kB shared memory.",
                        MaxFSMRelations, MaxFSMPages,
                        (double) FreeSpaceShmemSize() / 1024.0)));
+    
+    if (numRels == MaxFSMRelations)
+        ereport(LOG,
+            (errmsg("max_fsm_relations(%d) equals the number of relations checked",
+             MaxFSMRelations),
+             errhint("You have >= %d relations. You should increase max_fsm_relations.",numRels)));
+    else
+    if (needed > MaxFSMPages)
+        ereport(LOG,
+            (errmsg("the number of page slots needed (%.0f) exceeds max_fsm_pages (%d)",
+             needed,MaxFSMPages),
+             errhint("You may want to increase max_fsm_pages to a value over %.0f.",needed)));
+
 }
 
 /*
% 
================================================================================

In response to

Responses

pgsql-patches by date

Next:From: Berényi GáborDate: 2005-02-27 20:38:20
Subject: Re: bcc32.mak for libpq broken? (distro 8.0.0) (fwd)
Previous:From: Simon RiggsDate: 2005-02-27 19:19:46
Subject: Re: [PATCHES] A way to let Vacuum warn if FSM settings are low.

pgsql-general by date

Next:From: Brian MaguireDate: 2005-02-27 20:12:46
Subject: pgpool fundamental questions
Previous:From: Simon RiggsDate: 2005-02-27 19:19:46
Subject: Re: [PATCHES] A way to let Vacuum warn if FSM settings are low.

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group