Re: FSM - per database or per installation? - Mailing list pgsql-performance

From Scott Marlowe
Subject Re: FSM - per database or per installation?
Date
Msg-id dcc563d10912231803q4a6d100j97660722d5afe438@mail.gmail.com
Whole thread Raw
In response to Re: FSM - per database or per installation?  (Craig James <craig_james@emolecules.com>)
List pgsql-performance
On Wed, Dec 23, 2009 at 6:38 PM, Craig James <craig_james@emolecules.com> wrote:
> Heikki Linnakangas wrote:
>>
>> Craig James wrote:
>>>
>>> Are the FSM parameters for each database, or the entire Postgres
>>> system?  In other words, if I have 100 databases, do I need to increase
>>> max_fsm_pages and max_fsm_relations by a factor of 100, or keep them the
>>> same as if I just have one database?
>>>
>>> I suspect they're per-database, i.e. as I add databases, I don't have to
>>> increase the FSM parameters, but the documentation isn't 100% clear on
>>> this point.
>>
>> It's per cluster, ie *not* per-database.
>
> Hmmm ... it seems I have an impossible problem.  I have ~250 databases each
> with about 2500 relations (as in "select count(1) from pg_class where
> relname not like 'pg_%'").  That makes roughly 625,000 relations.
>
> But ... for max_fsm_pages, the Postgres manual says, "This setting must be
> at least 16 * max_fsm_relations. The default is chosen by initdb depending
> on the amount of available memory, and can range from 20k to 200k pages."
>
> So max_fsm_pages should be 16*625000, or 10,000,000 ... except that the
> limit is 200,000.  Or is it only the *default* that can be 200,000 max, but
> you can override and set it to any number you like?

NO! that's not the max (if it was I would be in serious trouble.)
That's the max that you'll see done by initdb when creating the
cluster.

We run 10M fsm pages on our servers, and use about 2.5M of that.

pgsql-performance by date:

Previous
From: Craig James
Date:
Subject: Re: FSM - per database or per installation?
Next
From: Alvaro Herrera
Date:
Subject: Re: FSM - per database or per installation?