Srs
O seguinte problema nos ocorre:
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. Tirado da pg_stat_all_tables as atualizações
na tabela pg_attribute em dois momentos, com 1 minuto de intervalo:
|n_tup_ins|n_tup_upd|n_tup_del|dh_consulta
----------+---------+---------+------------------------
|699710351| 40|699664383|2012-06-13 14:11:01.107469-03
|699738443| 40|699692475|2012-06-13 14:12:01.948497-03
| 28092| 0| 28092|
pid | database | user | application | ip | seconds | locked |
current_query
-------+----------+---------+-------------+----+---------+--------+----------------------------------------------------------------------------------
21255 | corepj | pgsql | | | 4599 | f |
autovacuum: VACUUM ANALYZE pg_catalog.pg_attribute
21047 | corepj | pgsql | | | 793 | f |
autovacuum: VACUUM bucardo.delta_relacional_fgts
91791 | corepj | pgsql | | | 757 | f |
autovacuum: VACUUM ANALYZE pg_catalog.pg_type
16456 | corepj | pgsql | | | 660 | f |
autovacuum: VACUUM ANALYZE bucardo.delta_relacional_qsa
76891 | corepj | pgsql | | | 226 | f |
autovacuum: VACUUM ANALYZE pg_catalog.pg_depend
19727 | corepj | pgsql | | | 202 | f |
autovacuum: VACUUM ANALYZE farm.cnpj_cnae
44957 | corepj | pgsql | | | 96 | f |
autovacuum: VACUUM pg_catalog.pg_statistic
10079 | corepj | pgsql | | | 87 | f |
autovacuum: VACUUM ANALYZE geral.status_funcao
49839 | corepj | pgsql | | | 36 | f |
autovacuum: VACUUM ANALYZE pg_catalog.pg_class
37330 | corepj | pgsql | | | 31 | f |
autovacuum: VACUUM bucardo.delta_relacional_cnpj_cnae
select count (*) from pg_catalog.pg_attribute
8943
rows
Parametros de autovaccum do postgresql.conf
autovacuum => on
autovacuum_analyze_scale_factor => 0.1
autovacuum_analyze_threshold =>50
autovacuum_freeze_max_age =>200000000
autovacuum_max_workers=>10
autovacuum_naptime => 60
autovacuum_vacuum_cost_delay => 20
autovacuum_vacuum_cost_limit =>-1
autovacuum_vacuum_scale_factor =>0.2
autovacuum_vacuum_threshold=>50
log_autovacuum_min_duration=>-1
Aumentamos o autovacuum_max_workers para 10 e mesmo assim todos eles ficam
alocados o tempo todo.O que pode estar acontecendo?
Desde já agradeço a atenção dispensada.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral