Re: Diagnosing outdated auto analyze dates...

From: Keith Fiske <keith(dot)fiske(at)crunchydata(dot)com>
To: Wells Oliver <wells(dot)oliver(at)gmail(dot)com>
Cc: pgsql-admin <pgsql-admin(at)postgresql(dot)org>
Subject: Re: Diagnosing outdated auto analyze dates...
Date: 2021-04-21 20:48:10
Message-ID: CAODZiv4u4kPq41vtYyx6+ZjTRgNaaVZCoZe548KK7AEFDmMoXw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Wed, Apr 21, 2021 at 4:06 PM Wells Oliver <wells(dot)oliver(at)gmail(dot)com> wrote:

> A last_autoanalyze date in pg_stat_all_tables for a table we update every
> day is 3/26, another is 3/13 -- I feel strongly somehow these tables should
> be auto-analyzed and auto-vacuumed more often, and am wondering where to
> look first.
>
> My autovacuum_analyze_threshold is 10, my autovacuum_vacuum_threshold is
> 25.
>
> How can I better understand why these tables are not more frequently being
> auto-analyzed and vacuumed?
>
> Thank you.
>
> --
> Wells Oliver
> wells(dot)oliver(at)gmail(dot)com <wellsoliver(at)gmail(dot)com>
>

The threshold settings are only part of the calculation that determines
when autovacuum kicks in. There's also autovacuum_vacuum_scale_factor
and autovacuum_analyze_scale_factor. The scale factors say that when this
fraction of the table has been changed (updates/deletes) then run the
relevant operation (vacuum or analyze).

The threshold values are added on top of the scale factor values. So, what
determines whether your analyze kicks in is actually

(autovacuum_analyze_scale_factor * total row
count) + autovacuum_analyze_threshold

The reason it's like this is to avoid autovacuum kicking in excessively on
very small tables when a small % changes. Ex. 10 rows on a 100 row table
constantly kicking in autovacuum when scale factor is set to .10. So add on
100-500 for the threshold so autovacuum kicks in when a good number of rows
actually changes.

If you want a specific number of row changes to cause autovacuum to kick
in, you can set the scale factor to zero for that specific table. I only
really find that necessary myself on rather large tables though (10s of
millions of rows).

--
Keith Fiske
Senior Database Engineer
Crunchy Data - http://crunchydata.com

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Wells Oliver 2021-04-21 21:05:12 Re: Diagnosing outdated auto analyze dates...
Previous Message Wells Oliver 2021-04-21 20:06:09 Diagnosing outdated auto analyze dates...