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

Responder a