Euller, 

Agradeço sua resposta. Segue considerações: 

- sobre o parâmetro, utilizei o nome errado, me refiro ao parâmetro 
autovacuum_max_workers , presente na versão 9.0.10; 
- mesmo utilizando 24MB, na sessão, e demorando 40 mintuos, porque não utilizou 
total disponível 32MB, como funciona o rastreio de tuplas não vigentes? 
- é um processo do autovacuum, e não wrap-around; 
- Segue estatísticas da tabela: 
relname; 
seq_scan;seq_tup_read;idx_scan;idx_tup_fetch;n_tup_ins;n_tup_upd;n_tup_del;n_tup_hot_upd;n_live_tup;n_dead_tup;last_vacuum;last_autovacuum;last_analyze;last_autoanalyze
 
"tbsession";33874;63090745;64590117;62505457;1051135;31172552;1050387;29656406;2159;55577;"30/04/2016
 13:07:15";"03/05/2016 16:01:44";"30/04/2016 13:07:15";"03/05/2016 16:01:45" 
Tamanho total 11.3GB 

- sobre atualização do postgres, está em curso a execução de atualização para 
versão do Postgres. 

Minha preocupação final além disso é porque trata-se uma tabela com muio 
update, ou seja, muito inchada, porém, estou estudando para entender e tratar 
essa tabela. 

Obrigado. 





De: "Euler Taveira" <[email protected]> 
Para: "Comunidade PostgreSQL Brasileira" <[email protected]> 
Enviadas: Terça-feira, 3 de maio de 2016 15:45:57 
Assunto: Re: [pgbr-geral] [memória autovacuum] 

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 

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

Responder a