Re: Behaviour when autovacuum is canceled

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Behaviour when autovacuum is canceled
Дата
Msg-id 11505.1536884478@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Behaviour when autovacuum is canceled  (Martín Fernández <fmartin91@gmail.com>)
Ответы Re: Behaviour when autovacuum is canceled
Список pgsql-general
=?UTF-8?q?Mart=C3=ADn_Fern=C3=A1ndez?= <fmartin91@gmail.com> writes:
> We basically started a VACUUM on a given table, waited for one index to process (captured cleaned rows count) and
cancelthe VACUUM. When we run another VACUUM on the same table the dead rows removed from the first index was a number
slightlyhigher than the value logged on the first VACUUM. This behaviour made us feel that the work done to clean dead
tupleson the first index was performed again.  

The unit of work that doesn't have to be repeated if VACUUM is canceled
is:

1. Scan a bunch of heap pages to identify dead tuples;
2. Scan *all* the table's indexes to remove the corresponding index entries;
3. Rescan those heap pages to actually remove the tuples.

It sounds like you canceled partway through phase 2.

The actual size of this unit of work is the number of dead-tuple TIDs
that will fit in maintenance_work_mem (at six or eight bytes apiece,
I forget whether it's aligned...).  Normally, people make
maintenance_work_mem big so that they can reduce the number of index
scan cycles needed to complete vacuuming a table.  But if you're
concerned about reducing the amount of work lost to a cancel,
you might try *reducing* maintenance_work_mem.  This will make
vacuum slower overall (more index scans), but you have a better
chance that it will manage to actually remove some tuples before
getting canceled.

Or you could look at fixing the access patterns that are causing
so many autovacuum cancels.

            regards, tom lane


В списке pgsql-general по дате отправления:

Предыдущее
От: Neto pr
Дата:
Сообщение: Re: [External] RE: Estimate time without running the query
Следующее
От: Martín Fernández
Дата:
Сообщение: Re: Behaviour when autovacuum is canceled