[check_postgres] FSM checks

Jeff Frost jeff at frostconsultingllc.com
Sat Sep 27 03:52:05 UTC 2008


On Fri, 26 Sep 2008, Robert Treat wrote:

> On Friday 26 September 2008 00:56:45 Robert Treat wrote:
>> On Thursday 25 September 2008 20:03:56 Jeff Frost wrote:
>>> The new FSM checks don't seem to agree with vacuum verbose:
>>>
>>> CPU 0.00s/0.00u sec elapsed 0.01 sec.
>>> INFO:  free space map contains 214803 pages in 849 relations
>>> DETAIL:  A total of 226592 page slots are in use (including overhead).
>>> 226592 page slots are required to track all free space.
>>> Current limits are:  2000000 page slots, 1000 relations, using 11823 kB.
>>>
>>> discord:~/git/check_postgres $ ./check_postgres.pl --action fsm_pages
>>> --db=postgres POSTGRES_FSM_PAGES WARNING:  fsm page slots used: 1722880
>>> of 2000000 (86%) | time=0.01
>>>
>>> POSTGRES_FSM_RELATIONS WARNING:  fsm relations used: 855 of 1000 (86%) |
>>> time=0.03
>>>
>>> The relations seems pretty close, but the pages are pretty far off:
>>>
>>> 226592
>>> vs
>>> 1722880
>>
>> What version of postgres are you on?
>>
>> Can you give me the output of the following query:
>> select sum(interestingpages), sum(storedpages),
>> sum(greatest(interestingpages,storedpages)) from pg_freespacemap_relations;
>
> ok, I think I found the issue... can you try this query and see if it gives
> you better results:
>
> select sumrequests, numrels, chunkpages, ((sumrequests+numrels)*chunkpages) as
> freepageslots from (select sum(case when avgrequest is null then
> interestingpages/32 else interestingpages/16 end) as sumrequests,
> count(relfilenode) as numrels, 16 as chunkpages from
> pg_freespacemap_relations ) "freespace.c" ;

Hey Robert, sorry for the slow response, I'm out of town this weekend with 
limited email access.

This is on 8.3.4.  Here are the results of the queries you requested:

postgres=# show server_version;
  server_version
----------------
  8.3.4
(1 row)

postgres=# select sum(interestingpages), sum(storedpages),
postgres-# sum(greatest(interestingpages,storedpages)) from 
pg_freespacemap_relations;
   sum   |  sum   |  sum
--------+--------+--------
  214803 | 214803 | 214803
(1 row)

postgres=# select sumrequests, numrels, chunkpages, ((sumrequests+numrels)*chunkpages)
postgres-# as
postgres-# freepageslots from (select sum(case when avgrequest is null then
postgres(# interestingpages/32 else interestingpages/16 end) as sumrequests,
postgres(# count(relfilenode) as numrels, 16 as chunkpages from
postgres(# pg_freespacemap_relations ) "freespace.c" ;
  sumrequests | numrels | chunkpages | freepageslots
-------------+---------+------------+---------------
        13319 |     855 |         16 |        226784
(1 row)

Let me know how else I can help.  This is an exciting addition!

-- 
Jeff Frost, Owner 	<jeff at frostconsultingllc.com>
Frost Consulting, LLC 	http://www.frostconsultingllc.com/
Phone: 916-647-6411	FAX: 916-405-4032


More information about the Check_postgres mailing list