PostgreSQL 8.x defaults

Palle Girgensohn girgen at pingpong.net
Mon Apr 9 10:04:45 UTC 2007


5 apr 2007 kl. 15.24 skrev Craig Boston:

> I recently installed some PostgreSQL 8.2 servers (and upgraded some  
> from
> 8.1), and it reminded me of a few lingering nits in our port that bug
> me.  Mostly the port seems that it can't make up its mind about VACCUM
> strategy.
>
> * We have a patch that sets autovacuum = yes in the default
>   postgresql.conf.  However, it leaves the default stats_row_level  
> = no,
>   so autovacuum doesn't actually run.

Hi,

I've checked it out. Seems I have indeed missed the  
stats_row_level... I'll fix this!

> * Despite trying to turn on autovacuum, the port installs
>   periodic/daily/502.pgsql, which runs VACUUM (not even VACUUM  
> ANALYZE)
>   by default nightly.

It does run vaccumdb -aqz per default, where -z is for analyze:

$ grep daily_pgsql_vacuum_args files/502.pgsql
daily_pgsql_vacuum_args="-z"
         su -l pgsql -c "vacuumdb -a -q ${daily_pgsql_vacuum_args}"

>
> It seems to me that we should pick one or the other -- either
>
> 1. Fully enable autovacuum and default to  
> daily_pgsql_vacuum_enable="NO"
>    to avoid a superfluous cron job
>
> or
>
> 2. Leave the periodic job enabled and not tease people with an
>    ineffectual autovacuum = yes in postgresql.conf.
>
> Of the two I'd prefer the former, but that's just my opinion.


About the two "strategies" you present; autovacuum will probably need  
some tweaking for most applications, since it will not perform  
vacuums unless a certain percentage of the tuples are changed. Hence,  
usually I use a combination of autovacuum and a nightly vacuumdb -za.  
For smaller installations, the vanilla setup could of course be  
either of your suggestions, or my just suggested combo, it is  
probably a matter of taste. I'd prefer you #1 or the combo... I'll  
think about it a bit more, and will fix the port. :)

Happy easter,
Palle




More information about the freebsd-ports mailing list