On 13-06-2012 14:25, Tiago Valério wrote:
> Possuimos  funções que criam tabelas temporárias do tipo on commit drop, estas
> funções rodam frequentemente e isto esta gerando um gargalo na execução do
> daemon autovacuum conforme resumo abaixo.Em especial gostaria de citar a
> pg_catalog.pg_attribute com seus 4599 segundos de execução constante. Essas
> tabelas da pg_catalog terminam o vacuum e iniciam novamente num ciclo sem fim.
> 
Com log_autovacuum_min_duration = 0 capture todas as execuções do autavacuum
na tabela pg_catalog.pg_attribute. Um tempo de execução alto do autovacuum não
é normal se ele não estiver mal configurado.

Qual o tamanho dessa tabela?

SELECT pg_relation_size(oid),reltuples,relpages FROM pg_class WHERE relname =
'pg_attribute';

Qual a saída da consulta abaixo em um determinado intervalo:

select now(),* from pg_stat_sys_tables where relname = 'pg_attribute';

> select count (*) from pg_catalog.pg_attribute
> 8943
> rows
> 
Com esse número de tuplas a execução do autovacuum deveria ser rápida. Qual é
a saída do comando abaixo (se é que o processo do autovacuum na pg_attribute
ainda existe):

strace -p 21225

> Aumentamos o autovacuum_max_workers para 10 e mesmo assim todos eles ficam
> alocados o tempo todo.O que pode estar acontecendo?
> 
Há alguma menção nos logs de uma mensagem no estilo 'canceling autovacuum task'?


-- 
   Euler Taveira de Oliveira - Timbira       http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a