shared_buffers = 24GB (RAM Total - 8GB (OS e PostgreSQL)).

Isso para que as consultas encontrem os dados em cache e não no sistema
operacional, evitando as requisições ao sistema. Tudo depende do tamanho do
banco de dados, numero de requisições, etc. No meu caso funciona
perfeitamente com esses valores sem uso de swap.


Abraço.


Em 9 de agosto de 2013 10:19, Matheus de Oliveira <matioli.math...@gmail.com
> escreveu:

>
> Em 8 de agosto de 2013 14:07, Emerson Martins 
> <emersonmarti...@gmail.com>escreveu:
>
>> Pessoal estou aqui mais uma vez precisando da ajuda de todos para
>>> entender melhor como configurar esses parâmetros de memória no postgres.Se
>>> existe alguma métrica específica para configura-los.
>>>
>>>  shared_buffers =
>>>  effective_cache_size =
>>>  work_mem =
>>>  maintenance_work_mem =
>>>
>>> Tomando por base um servidor com 32GB de memória e SO Linux (Debian)
>>>
>>
>>
> 2013/8/9 Dilamar Hoffmann <dilama...@gmail.com>
>>
> Bom dia Emerson,
>>
>> De acordo com esse valor de memória RAM os valores seriam:
>>
>> shared_buffers =  24GB
>>
>
> Quê? 24GB de shared_buffers? E um top-posting pra complementar. Pode isso
> Arnaldo?
>
>   effective_cache_size =  26GB
>>  work_mem = 8MB
>>  maintenance_work_mem = 1600MB
>>
>>
>
> Meio chutado esse valores, não?!
>
> Concordo que pode ter algumas situações onde esses valores podem ser bons
> (apesar de ser em apenas 0,0001%, ao meu ver), mas não acho legal
> apresentar valores dessa forma. O ideal, como já foi passado antes nos
> links e comentários, é entender os valores e monitorar a efetividade das
> alterações. Claro que se tem valores iniciais "meio genéricos" [1], que
> seriam, em geral:
>
> - shared_buffers = 15% a 20% da RAM, no caso dele eu começaria com 6GB e
> subiria se necessário (não mais do que 10GB ao menos que bem provado). Veja
> que existe a possibilidade de 500MB ser mais que suficiente (claro, para
> bancos pequenos), então por que exagerar tanto no começo?
>
> - effective_cache_size = o restante usado para cache do S.O. Em geral,
> podemos dizer que seria total da RAM - shared_buffers - outras apps. Um bom
> chute seria 50% da RAM, ou seja, 16GB, mas claro que também vai depender do
> tamanho do banco e das tabelas.
>
> - work_mem = esse é difícil dizer, talvez 8MB pode ser um valor inicial,
> mas o ideal é monitorar o uso de arquivos temporários e aumentar se estiver
> gerando muitos e muito grandes (o parâmetro log_temp_files é a maneira que
> acho melhor analisar isso).
>
> - maintenance_work_mem = é útil aumentar em SET's na sessão ao criar
> índices, alter tables, etc. O padrão (no postgresql.conf) vai ser muito
> útil para o autovacuum. Assim o mais agressivo que esse valor pode ser é:
> tamanho da maior tabela, ou RAM disponível / 3 (o 3 seria na verdade o
> autovacuum_max_workers). Eu, particularmente, não começaria com mais de
> 256MB (mas isso vai depender muito do banco e sua atividade - e.g. bancos
> com grandes tabelas que sofram muitos UPDATEs, seria benéfico aumentar).
>
> [1] http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
>
>
> Atenciosamente,
> --
> Matheus de Oliveira
> Analista de Banco de Dados
> Dextra Sistemas - MPS.Br nível F!
> www.dextra.com.br/postgres
>
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Dilamar
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a