Olá, Em 8 de novembro de 2010 11:04, André Volpato < [email protected]> escreveu:
> Bom dia, > > ----- Mensagem original ----- > | Bom dia pessoal, > | Estou utilizando o postgresql 8.4 no Fedora 13. > | Meu servidor tem 8GB RAM. > | Estou configurando o postgresql da seguinte forma: > | shared_buffers = 512MB > | max_connections = 50 > | work_mem = 80MB > > > Defina pra gente qual o tipo de aplicação, mas em via de regra, teu shared > buffers está baixo, e o work_mem um pouco alto. > > > | > | Quando inicio o serviço e monitoro no comando top vejo que mais de > | mais de > | um processo postmaster utiliza 512MB de memória residente. > Vamos lá. O top mostra o total acumulado e não o realmente usado, tem que tomar cuidado com isso ao monitorar. O parâmetro shared_buffers é compartilhado por todos os processos do PostgreSQL. O banco usa esta memória para as operações ativas (dados mais acessados estão nesta memória), isto pode ser várias tabelas, uma tabela inteira e índices. É importante analisar o seu sistema. É um ambiente dedicado para o PostgreSQL, ou tem por exemplo, Java rodando neste servidor? Cuidado ao modificar o parâmetro shared_buffers pois se os parâmetros de kernel que controlam a memória compartilhada não tiverem configurados adequadamente para suportar o valor definido no shared_buffers o seu PostgreSQL pode não subir. Com relação ao work_mem ele me parece um valor um pouco alto, visto que esta memória é utilizada para operações de agrupamento e ordenação e pelo que você comentou seu banco contempla na maioria operações de escritam, então o work_mem não é tão relevante para você. shared=compartilhado. Esses mesmos 512MB são usados por todos os processos, > e servem principalmente pra manter na RAM dados de tabelas recentemente > usadas. > > > | Gostaria de saber se colocando o shared_buffers com 512MB pode > | acontecer que cada uma das 50 conexões permitidas pelo max_conections > consuma 512MB > | de memória e com isso fazer com que o servidor use swap? > > Não se preocupe, você pode aumentar o shared buffers entre 1GB e 2GB, a > memória é compartilhada. Mas na minha experiência com RedHat/Fedora, o uso > de swap acontece sempre nesses sistemas. Nos únicos servidores que fui > obrigado a usar redhat, eu desativei a swap e aumentei a RAM pra ter um > desempenho decente. > > > > | O consumo de memória dos processos postmaster dependem do > | shared_buffers ou esse paramtro não limita o consumo do processo? > > > Não limita, você precisa contar também o work_mem. Cada SQL rodando > ordenação vai usar 80MB de RAM, e, caso ele não consiga alocar esse tanto, o > processo morre. Procure por OOM Killer, e tente reduzir o work_mem global e > aumentá-lo via aplicação quando for necessário. > Fique bem atento a dica que o André comentou do OOM Killer. > > > []´s, André Volpato > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > []s -- JotaComm http://jotacomm.wordpress.com
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
