pg_autovacuum rc for FreeBSD
/usr/ports/databases/postgresql-contrib comes with the very useful (until 8.1, anyway) pg_autovacuum daemon, but no rc script. Here's one I whipped up:
/usr/local/etc/rc.d/019.pg_autovacuum.sh
#!/bin/sh # # PROVIDE: pg_autovacuum # REQUIRE: postgresql # KEYWORD: FreeBSD shutdown # Add the following line to /etc/rc.conf to enable `pg_autovacuum': # # pg_autovacuum_enable="YES" # # . /etc/rc.subr pg_autovacuum_enable=${pg_autovacuum_enable:-"NO"} pg_autovacuum_flags=${pg_autovacuum_flags:-"-v 300 -V 0.5"} name=pg_autovacuum rcvar=`set_rcvar` command=/usr/local/bin/pg_autovacuum load_rc_config ${name} command_args="-D ${pg_autovacuum_flags}" pg_autovacuum_user=pgsql run_rc_command "$1"
I did submit a PR with this by way of send-pr, but it doesn't seem to have ended up in the PR repository. I'm not sure what to do about that, as it's the recommended way to submit PRs!
The FreeBSD port databases/postgresql80-server already installs a periodic(8) script under ${LOCALBASE}/etc/periodic/daily to do PostgreSQL maintenance, including vacuuming. By which I’m not saying that using pg_autovacuum instead might not be a better idea; I haven’t studied the pros and cons :-)
send-pr(1) just sends PRs via email, so you should be able to check your MTA’s logs to see whether the mail got delivered to GNATS, at least. Alternatively, you can file a PR online. If there really is a problem with send-pr, well, umm… I was about to say “file a PR”. :-) But in the absence of that, I suppose it can be reported on the freebsd-bugs list.
– V (FreeBSD ports committer, retired)
Comment by Johann Visagiie — 2005-08-18 @ 6:30 am
Well, PostgreSQL 8.1 is going to have an improved version of the pg_autovacuum strategy built-in, so it’s not that big of a deal. pg_autovacuum vacuums when the table stats say it’s a good idea, rather than daily (which may be too frequent or infrequent, depending on your usage patterns).
Good call on the MTA logs, my reverse DNS isn’t proper on that box and @freebsd.org is dissing me. send-pr should probably just use curl to POST the data to the web form, there’s a lot fewer things that could go wrong that way.
Comment by Bob Ippolito — 2005-08-18 @ 6:51 am