Pessoal,

Estou tendo problemas com a minha aplicação onde sempre que se inicia o
autovacuum, a aplicação trava.

Olhando na atividade dos processos do postgres, o autovacuum está em uma
tabela que contém 9 GiB e o banco inteiro está com 17 GiB, porém, essa
tabela contém campo bytea.

Para não deixar a aplicação parada até descobrirmos qual é o problema,
desabilitamos o autovacuum no arquivo de configuração, porém, mesmo
desabilitado ele continua aparecendo, aí eu termino o processo pelo
pgadmin executando um pg_terminate_backend, mas depois de um tempo ele
aparece novamente.

Verifique em pg_stat_activity se o autovacuum é do tipo "to prevent wraparound". Provavelmente é.

Se for, não há muito o que fazer, ele vai entrar. Você pode aumentar o valor de autovacuum_freeze_max_age mas isso é paliativo e uma hora vai acontecer de volta.

Quanto está seu autovacuum_vacuum_cost_delay ? Se estiver no default de 20ms (valor -1, usa vacuum_cost_delay que é 20ms) você pode colocar 50ms e isso vai fazer a operação diminuir o impacto sobre sua operação.

"PostgreSQL 8.4.10, compiled by Visual C++ build 1400, 32-bit" em
windows server 2003

NTFS não é um bom sistema de arquivos e, por isso, a operação está sentando seu banco de dados. Considere usar Linux/Unix para seu banco de dados.

Mesmo no Windows, considere separar as coisas (dados, pg_xlog, tablespaces) também ajuda. O tamanho do banco de dados pouco importa, o que importa é a quantidade de operações que um disco tem que fazer e a taxa de transações que seu banco de dados está fazendo.

Em resumo, tente ajustar os valores que falei lá em cima (e ligue o autovacuum pra não piorar sua situação) como medida imediata e depois considere separar discos. Se possível, mude de S.O.

[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a