Re: CPU-intensive autovacuuming

Поиск
Список
Период
Сортировка
От Matthew T. O'Connor
Тема Re: CPU-intensive autovacuuming
Дата
Msg-id 42A4EB56.5080905@zeut.net
обсуждение исходный текст
Ответ на Re: CPU-intensive autovacuuming  (Phil Endecott <spam_from_postgresql_general@chezphil.org>)
Ответы Re: CPU-intensive autovacuuming  (Phil Endecott <spam_from_postgresql_general@chezphil.org>)
Список pgsql-general
Phil Endecott wrote:

> Following up on my own post from last night:
>
> > Could it be that there is some code in autovacuum that is O(n^2) in
> > the number of tables?
>
> Browsing the code using webcvs, I have found this:
>
> for (j = 0; j < PQntuples(res); j++)
> {
>     tbl_elem = DLGetHead(dbs->table_list);
>     while (tbl_elem != NULL)
>     {
>
> I haven't really tried to understand what is going on in here, but it
> does look like it is getting the result of the "pg_class join stats"
> query and then matching it up against its internal list of tables
> using nested loops, which is undoubtedly O(n^2) in the number of tables.
>
> Have I correctly understood what is going on here?


Indeed you have.  I have head a few similar reports but perhaps none as
bad as yours.  One person put a small sleep value so that it doesn't
spin so tight.  You could also just up the sleep delay so that it
doesn't do this work quite so often.  No other quick suggestions.


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

Предыдущее
От: Dianne Yumul
Дата:
Сообщение: Postgresql fails to start?
Следующее
От:
Дата:
Сообщение: how to get sequence list ?