Debian Squeeze (yeah, I know), postgresql 9.1. Two similar db servers, one master one shard. postgresql.conf identical between the two besides small memory footprint config differences - all vacuum/autovacuum configs identical. On both, I have autovacuum workers set to seven. On the shard, ps shows seven happy little workers. On the master, I only have the launcher process - postgres@mia-main-primary: ~ $ ps -ecf|grep [a]utovacuum postgres 7071 7065 TS 19 13:30 ? 00:00:02 postgres: autovacuum launcher process
I've straced the launcher process on both, and there's little difference, except that the shard spends more time in looping timeout cycles, which sort of makes sense to me since it has actual workers to poll. I've restarted postgresql, no change, nor with changing the number of workers, the aggressiveness, anything.
What's even more curious is that the statistics activity for autovacuuming does show tables being autovacuumed - at least the most active tables.
I'm kind of at a loss. Even though I have the evidence that autovacuuming is happening, I feel uneasy not seeing the actual workers there, particularly when there's no material difference between the two servers.