Re: [pgsql-hackers] fsm_ variables ... - Mailing list pgsql-hackers

From Josh Berkus
Subject Re: [pgsql-hackers] fsm_ variables ...
Date
Msg-id 200411050804.27330.josh@agliodbs.com
Whole thread Raw
List pgsql-hackers
Marc,

> Just thought of something after reading and deleting Gavin's email ...
> don't we have a 'pgtune' utility, or wasn't that something someone was
> working?  how many settings, like fsm, can be determined by analzying a
> database?

Well, Justin started writing something (see pg_autotune on GBorg) but it: a)
was in C and b) was based on tuning for the hardware using pgbench and not
tuning for the database.

I started something doing Q&A in Perl (e.g. "How large do you expect your
database to be?") but quickly ran into the issue that I didn't have good
mathematical formulas for most settings, just rules-of-thumb (and a perusal
of the Performance list for the last month will show that a lot of these
rules-of-thumb were based on incorrect assumptions, even if they work).

max_fsm_pages actually becomes *very* easy if you're running pg_autovacuum.
If your vacuum threshold is set to, for example, 50% updates, then you set
max_fsm_pages to about 50% of the pages you have on disk (obtainable from
pg_class).  However, this has a couple of issues with doing *automatically*
without user input:
1) this may require increasing SHMMAX/SHMALL, which requires a reboot on some
systems, and root access on all systems;
2) fsm_pages can only be set at server start, so if the user expects the
database to grow dramatically over time, FSM needs to be allocated based on
the expected maximum size of the DB, not on the current size;

Plus there's the fact that some database applications should not use
autovacuum and will turn it off.

--
--Josh

Josh Berkus
Aglio Database Solutions
San Francisco


pgsql-hackers by date:

Previous
From: Gaetano Mendola
Date:
Subject: Re: [PATCHES] CVS should die
Next
From:
Date:
Subject: Re: Documentation on PITR still scarce