There are approximately 50 tables which get updated with almost 100% records updated every 5 minutes – what is a good number of autovacuum processes to have on these? The current server I am replacing only has 3 of them but I think I may gain a benefit from having more.
Watch pg_stat_user_tables and you can figure this out for your workload. There are no generic answers in this area.
What in particular should I be looking at to help me decide?
Currently I have what I believe to be an aggressive bgwriter setting as follows:
bgwriter_delay = 200ms # 10-10000ms between rounds
bgwriter_lru_maxpages = 1000 # 0-1000 max buffers written/round
bgwriter_lru_multiplier = 10 # 0-10.0 multipler on buffers scanned/round
Does this look right?
You'd probably be better off decreasing the delay rather than pushing up the other two parameters. It's easy to tell if you did it right or not; just look at pg_stat_bgwriter. If buffers_backend is high relative to the others, that means the multiplier or delay is wrong. Or if maxwritten_clean is increasing fast, that means bgwriter_lru_maxpages is too low.
checkpoints_timed = 261
checkpoints_req = 0
buffers_checkpoint = 49058438
buffers_clean = 3562421
maxwritten_clean = 243
buffers_backend = 11774254
buffers_alloc = 42816578