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