So, to summarise the various discussions:
1. There is the "hard" problem of figuring out near-optimum config for a given
set of hardware/data/usage patterns. Once we know how to figure this out, a
pg_tune tool could be written.
2. There is the "simple" problem of replacing the current default with
something more suitable / letting users know the defaults are unsuitable.
For (2) there have been suggestions to have postgresql.conf.tiny / small / big
/ many-users etc.
My tuppence-worth: have a new setting PG_CONFIG_NAME = 'small' or whatever and
make sure this is reported on startup of a psql session. The default setting
could be called UNCONFIGURED. So, it would read:
Welcome to psql, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
version=7.9.9, config=UNCONFIGURED
richardh=>
This would also help the situation where people have multiple config files for
different scenarios (e.g. development systems).
--
Richard Huxton