Re: postgresql11 space reuse under high delete/update rate

From: Ron <ronljohnsonjr(at)gmail(dot)com>
To: pgsql-admin(at)lists(dot)postgresql(dot)org
Subject: Re: postgresql11 space reuse under high delete/update rate
Date: 2019-03-04 16:26:12
Message-ID: 49b92726-3397-d0d3-1e24-7535a976f720@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On 3/4/19 4:53 AM, Aliza Abulafia wrote:
>
> Hi
>
> we are evaluating postgresql 11.1 for our productions.
>
> Having a system with 4251 updates per second, ~1000 delete per second and
>   ~3221 inserts per second and 1billion transaction per day.
>
> we face a challenge where PostgreSQL does not reuse its (delete/update)
> space , and tables constantly increase size.
>
> we configured aggressive Autovacuum settings to avoid the wraparound
> situation. also tried adding periodic execution of vacuum analyze and
> vaccum –
>
> and still there is no space reuse. (only vacuum full or pg_repack release
> space to operating system – but this is not a reuse)
>
> following are our vacuum settings :
>
> autovacuum                          | on
>
> vacuum_cost_limit                   | 6000
>
> autovacuum_analyze_threshold        | 50
>
> autovacuum_vacuum_threshold         | 50
>
> autovacuum_vacuum_cost_delay        | 5
>
> autovacuum_max_workers              | 32
>
> autovacuum_freeze_max_age           | 2000000
>
> autovacuum_multixact_freeze_max_age | 2000000
>
> vacuum_freeze_table_age             | 20000
>
> vacuum_multixact_freeze_table_age   | 20000
>
> vacuum_cost_page_dirty              | 20
>
> vacuum_freeze_min_age               | 10000
>
> vacuum_multixact_freeze_min_age     | 10000
>
> log_autovacuum_min_duration    | 1000
>
> autovacuum_naptime | 10
>
> autovacuum_analyze_scale_factor     | 0
>
> autovacuum_vacuum_scale_factor      | 0
>
> vacuum_cleanup_index_scale_factor   | 0
>
> vacuum_cost_delay                   | 0
>
> vacuum_defer_cleanup_age            | 0
>
> autovacuum_vacuum_cost_limit        | -1
>
> autovacuum_work_mem                 | -1
>

How frequently did you manually vacuum?

For example, generate a list of tables with a "sufficient" number of dead
tuples, and then manually vacuum them in parallel:
TABLES=`mktemp`
psql $DB -c "SELECT '-t', schemaname||'.'||relname
             FROM pg_stat_all_tables
             WHERE n_dead_tuples > 500 -- or whatever number you think best
             ORDER BY 2;" > $TABLES
vacuumdb --jobs=6 --dbname=$DB `cat $TABLES`
psql -c "CHECKPOINT;"

--
Angular momentum makes the world go 'round.

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Vijaykumar Jain 2019-03-04 18:23:33 Re: [External] Re: postgresql11 space reuse under high delete/update rate
Previous Message Aliza Abulafia 2019-03-04 13:24:01 postgresql11.1 - stabilize partition pruning at execution time