Bruce Momjian wrote:
> pgman wrote:
> >     INFO:  free space map: 49 relations with free space, maximum of 1000 
> > relations trackable
> >     INFO:  17266 pages stored, 18000 pages used (with overhead)
> >     INFO:  18768 pages required to store all freespace, maximum of 18000 
> > pages allocatable (171 kB)
> >     NOTICE:  the number of page slots needed (18768) exceeds max_fsm_pages 
> > (18000)
> >     HINT:  Consider increasing the configuration parameter 
> > "max_fsm_relations"
> >     to a value over 18768.
> > 
> > I find this output cleaner and easier to understand.  The "pages used"
> > value will match either the "required" or "maximum" value on the line
> > below.
> 
> The "pages used" sentence above is wrong, and it seems the computation
> is wrong too.  I just connected to another database, created, inserted,
> and deleted rows from a table and see:
> 
>       INFO:  free space map: 50 relations with free space, maximum of 1000 
>       relations trackable
>       INFO:  17266 pages stored, 18016 pages used (with overhead)
>       INFO:  18784 pages required to store all freespace, maximum of 18000
>       pages allocatable (171 kB)
>       NOTICE:  the number of page slots needed (18784) exceeds max_fsm_pages
>       (18000)
>       HINT:  Consider increasing the configuration parameter 
> "max_fsm_relations"
>       to a value over 18784.
> 
> The 'pages used' is greater than 18000, which isn't possible.  Seems I
> have more work to do.

OK, I have simplified the patch.  It doesn't use any new computations
but just displays them differently.  The output is now:

        INFO:  free space map contains information about:
        INFO:  49 relations, limit 1000 relations
        INFO:  35 pages with free space, 784 pages (with overhead)
        INFO:  784 pages required to track all freespace, limit 18000 pages 
(171 kB)

I have committed this patch to HEAD.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: src/backend/storage/freespace/freespace.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/storage/freespace/freespace.c,v
retrieving revision 1.39
diff -c -c -r1.39 freespace.c
*** src/backend/storage/freespace/freespace.c   14 Mar 2005 20:15:09 -0000      
1.39
--- src/backend/storage/freespace/freespace.c   23 Apr 2005 15:18:21 -0000
***************
*** 699,704 ****
--- 699,705 ----
                 fsmrel != NULL;
                 fsmrel = fsmrel->nextPhysical)
                storedPages += fsmrel->storedPages;
+ 
        /* Copy other stats before dropping lock */
        numRels = FreeSpaceMap->numRels;
        sumRequests = FreeSpaceMap->sumRequests;
***************
*** 708,718 ****
        needed = (sumRequests + numRels) * CHUNKPAGES;
  
        ereport(elevel,
!                       (errmsg("free space map: %d relations, %d pages stored; 
%.0f total pages used",
!                                       numRels, storedPages, needed),
!                        errdetail("FSM size: %d relations + %d pages = %.0f kB 
shared memory.",
!                                          MaxFSMRelations, MaxFSMPages,
!                                          (double) FreeSpaceShmemSize() / 
1024.0)));
  
        CheckFreeSpaceMapStatistics(NOTICE, numRels, needed);
        /* Print to server logs too because is deals with a config variable. */
--- 709,728 ----
        needed = (sumRequests + numRels) * CHUNKPAGES;
  
        ereport(elevel,
!                       (errmsg("free space map contains information about:")));
! 
!       ereport(elevel,
!                       (errmsg("%d relations, limit %d relations",
!                                       numRels, MaxFSMRelations)));
! 
!       ereport(elevel,
!                       (errmsg("%d pages with free space, %.0f pages (with 
overhead)",
!                                       storedPages, Min(needed, 
MaxFSMPages))));
! 
!       ereport(elevel,
!                       (errmsg("%.0f pages required to track all freespace, 
limit %d pages (%.0f kB)",
!                                       needed, MaxFSMPages,
!                                  (double) FreeSpaceShmemSize() / 1024.0)));
  
        CheckFreeSpaceMapStatistics(NOTICE, numRels, needed);
        /* Print to server logs too because is deals with a config variable. */
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to