Re: More detail on settings for pgavd?
От | Shridhar Daithankar |
---|---|
Тема | Re: More detail on settings for pgavd? |
Дата | |
Msg-id | 3FBB79E6.6040701@myrealbox.com обсуждение исходный текст |
Ответ на | More detail on settings for pgavd? (Josh Berkus <josh@agliodbs.com>) |
Ответы |
Re: More detail on settings for pgavd?
|
Список | pgsql-performance |
Josh Berkus wrote: > Shridhar, > > I was looking at the -V/-v and -A/-a settings in pgavd, and really don't > understand how the calculation works. According to the readme, if I set -v > to 1000 and -V to 2 (the defaults) for a table with 10,000 rows, pgavd would > only vacuum after 21,000 rows had been updated. This seems wrong. No. that is correct. It is calculated as threshold = base + scale*numebr of current rows Which translates to 21,000 = 1000 + 2*1000 However I do not agree with this logic entirely. It pegs the next vacuum w.r.t current table size which is not always a good thing. I would rather vacuum the table at 2000 updates, which is what you probably want. Furthermore analyze threshold depends upon inserts+updates. I think it should also depends upon deletes for obvious reasons. > Can you clear this up a little? I'd like to tweak these settings but can't > without being better aquainted with the calculation. What did you expected in above example? It is not difficult to tweak pg_autovacuum calculations. For testing we can play around. > Also, you may want to reverse your default ratio for Vacuum/analyze frequency. > True, analyze is a less expensive operation than Vacuum, but it's also needed > less often -- only when the *distribution* of data changes. I've seen > databases where the optimal vacuum/analyze frequency was every 10 min/once > per day. OK vacuum and analyze thresholds are calculated with same formula as shown above but with different parameters as follows. vacthresh = vacbase + vacscale*ntuples anathresh = anabase + anascale*ntuples What you are asking for is vacthresh = vacbase*vacscale anathresh = anabase + anascale*ntuples Would that tilt the favour the way you want? i.e. an analyze is triggered when a fixed *percentage* of table changes but a vacuum is triggered when a fixed *number of rows* are changed. I am all for experimentation. If you have real life data to play with, I can give you some patches to play around. And BTW, this is all brain child of Mathew O.Connor(Correct? I am not good at either names or spellings). The way I wrote pgavd originally, each table got to get separate threshold..:-). That was rather a brute force approach. Shridhar
В списке pgsql-performance по дате отправления: