>> Não é possível afirmar.
>> Depende de cada aplicação.
>> OLTP precisa de mais shared_buffers e menos work_mem.
>> OLAP precisa de menos shared_buffers e mais work_mem.
Entendo que depente de cada aplicação, mas como vou oferecer este serviço
junto com a hospedagem da aplicação, preciso fazer uma configuração meio
que genérica.
Acredito que a maioria dos clientes serão OLAP
Acho que vou adotar:
shared_buffers = 25%
work_mem = 50% (work_mem * max_connections)
autovacuum = 25% (maintenance_work_mem * autovacuum_work_mem)
shared_buffers work_mem*max_connections maintenance_work_mem
autovaccum_work_mem total RAM
32MB 64MB 16MB
2 128MB
64MB 128MB 32MB
2 256MB
128MB 256MB 64MB
2 512MB
256MB 512MB 128MB
2 1024MB
>> Lembrete: work_mem pode ser ajustada no meio de uma sessão e sobrepõe o valor
do conf.
Meu cliente pode definir o work_mem dentro de sua aplicação?
Não tem como eu limitar isto?
Atenciosamente,
Alessandro Lima
email [email protected]
Em 4 de outubro de 2012 18:22, Flavio Henrique Araque Gurgel <
[email protected]> escreveu:
>
> Em 04-10-2012 18:15, Alessandro Lima escreveu:
> > Para o uso de 1GB do servidor os valores abaixo oferecem uma boa
> > performance?
> >
> > shared_buffers = 512MB (50%)
> > 2 * max_connections * work_mem = 512MB (50%)
>
> Não é possível afirmar.
> Depende de cada aplicação.
> OLTP precisa de mais shared_buffers e menos work_mem.
> OLAP precisa de menos shared_buffers e mais work_mem.
>
> Lembrete: work_mem pode ser ajustada no meio de uma sessão e sobrepõe o
> valor do conf.
>
> > Dúvida 1: por que devo multiplicar por 2 ?
>
> É um chute. Considera-se que, em média, você terá uma consulta mais uma
> sub-consulta por conexão.
> Mas, dependendo da aplicação, pode ser tanto mais quanto menos.
>
> > Dúvida 2: Não preciso considerar o temp_buffers para calcular o total de
> > RAM utilizado?
>
> temp_buffers é uma fração do shared_buffers.
>
> > Dúvida 3: O uso de RAM para maintenance_work_mem é pouco utilizado?
> > talvez possa desonsiderá-lo para limitar a memória total do servidor.
>
> Ele é muito utilizado nas operações automáticas de manutenção (e nas
> manuais também).
> Um valor baixo de maintenance_work_mem pode fazer seu servidor ter
> desempenho ruim nas operações do autovacuum e ainda gerar arquivos
> temporários.
>
> > maintenance_work_mem = 64MB
> > autovacuum_max_worker = 1
>
> Depende de cada aplicação e banco de dados.
> Normalmente deixar apenas um worker é má ideia.
>
> > Dúvida 4: autovacuum_work_mem é mesma coisa que maintenance_work_mem?
>
> Onde você viu autovacuum_work_mem?
> Isso foi um parâmetro discutido na lista hackers mas não vi
> implementação até versão 9.2.
>
> > Dúvida 5: 64MB para maintenance_work_mem já é um valor satisfatório?
>
> Como já disse lá em cima, depende de sua aplicação e quantidade de dados.
>
> []s
>
> __________________________________
> Flavio Henrique A. Gurgel
> Líder de Projetos Especiais
> Consultoria, Projetos & Treinamentos 4LINUX
> Tel1: +55-11.2125-4747 ou 2125-4748
> www.4linux.com.br
> email: [email protected]
> ______________________________
> FREE SOFTWARE SOLUTIONS
> _______________________________________________
> 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