On 03-05-2016 15:10, Daniel Luiz da Silva wrote: > Tenho castrado 32MB para o parâmetro maintenance_work_mem e 3 para > autovacuum_work_men. > Porém ao executar um processo de autovaccum de uma tabela específica a > memória utilizada de acordo com Sistema Operacional é de 24MB. > Na versão 9.0 *não* existe o parâmetro autovacuum_work_mem; utilize maintenance_work_mem.
> Minha dúvida é sobre a quantidade de memória que um processo de > autovaccum pode utilizar, ou seja, de acordo com a documentação postgres > (http://www.postgresql.org/docs/9.1/static/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-MEMORY), > esse valor é igual a quantidade de memória disponível para manutenção, > vezes a quantidade de processo autovaccum que podem rodar em paralelo. > No meu caso resulta 96MB. Por fim o processo estava executando > autovaccum a mais de 40min, utilizando no máximo 24MB, e apenas um > processo de autovaccum rodando. O SGBD não deveria utilizar o total > disponível para esse caso, levando em conta que além disso o servidor > estava com bastante memória disponível? > Não. Ele pode usar *até* maintenance_work_mem (ou autovacuum_work_mem) para rastreio de tuplas não vigentes. Cada processo do autovacuum vai usar no máximo maintenance_work_mem (ou autovacuum_work_mem), ou seja, como você só tem um processo usará no máximo 32 MB. É um worker do autovacuum normal ou anti-wraparound? Além disso, forneça as estatísticas (pg_stat_user_tables) e o tamanho da referida tabela. PS> sempre leia a documentação relativa a sua versão (9.0) e não versões recentes pois podem haver mudanças significativas. PS2> a 9.0 foi descontinuada a 7 meses. Considere atualizar a versão o quanto antes. -- Euler Taveira 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
