Re: [pgbr-geral] Mensagem "out of memory for result query"

2012-02-09 Por tôpico Danilo Silva
Em 9 de fevereiro de 2012 17:59, Euler Taveira de Oliveira <
eu...@timbira.com> escreveu:

> On 09-02-2012 11:12, Tulio Santos wrote:
> > Fiz uma consulta grande no banco e recebi a mensagem "out of memory for
> result
> > query".
> >
>

Em qual backend você recebeu a mensagem?

Att.

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


Re: [pgbr-geral] Mensagem "out of memory for result query"

2012-02-09 Por tôpico Euler Taveira de Oliveira
On 09-02-2012 11:12, Tulio Santos wrote:
> Fiz uma consulta grande no banco e recebi a mensagem "out of memory for result
> query".
> 
Isso não tem a ver com work_mem. O problema é na aplicação cliente (qual é?)
que está utilizando pois essa mensagem (correto é: out of memory for query
result) vem da libpq. Parece-me que a aplicação cliente não consegue alocar
memória suficiente para "abrigar" todos os dados recebidos. Talvez haja algum
limite para usuário que executa a aplicação ou a memória da máquina que
executa a aplicação não tem memória suficiente mesmo.


-- 
   Euler Taveira de Oliveira - Timbira   http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mensagem "out of memory for result query"

2012-02-09 Por tôpico Tulio Santos
Está configurada para 100 conexões + 3 de super usuarios..
mas chegam a algo de 50 conexoes

e com shared_buffer de 512mb..
Sobre o consumo do S.O. não sei dizer.. 

Analizando pelo historico do Zabbix, num periodo em que nao há produção o 
memória maxima foi de 600mb.

Tem alguma forma de buscar esse valor de forma mais precisa?

De qualquer forma, antes de definir o valor da work_mem fizemos o calculo 
considerando 1gb de ram para o sistema..

shared_buffer + ( (max_connections + superusers) * (work_mem  * 2)) + 
(autovaccum_max_workers * maintenance_work_mem) + S.O 


select (512 + ( (100 + 3) * (9  * 2)) + (3 * 16) + 1024 ); 
O resultado é 3438mb...
Considerando que temos 4gb de RAM, seria esse um valor ruim? 
Ou minha conta está errada?

> Suas consultas que precisam de memória serão um pouco mais lentas, pois o 
> PostgreSQL fará
> arquivos temporários para suprir a necessidade.
Foi por esse motivo que alteramos a work_mem, pois na massa de dados que é 
retornada utilizamos order by, o que as torna muito demoradas,
principalmente quando passa a utilizar o disco ao inves da memoria.
Ja reduzimos no maximo a quantidade de campos a serem ordenados.


Att,
Tulio




>
> De: Flavio Henrique Araque Gurgel 
>Para: Tulio Santos ; Comunidade PostgreSQL 
>Brasileira  
>Enviadas: Quinta-feira, 9 de Fevereiro de 2012 12:37
>Assunto: Re: [pgbr-geral] Mensagem "out of memory for result query"
> 
>> Fiz uma consulta grande no banco e recebi a mensagem "out of memory for
>> result query".
>> A consulta foi executada no servidor master.
>> Atualmente minha work_mem esta em 9mb, sendo que foi alterada recentemente,
>> e antes da alteração ainda nao havia me deparado com esta mensagem.
>> A consulta é pesada a ponto de dificilmente vir a ser utilizada, mas pode
>> ocorrer.
>> Alguem já se deparou com isso?
>
>Sim.
>
>> Qual a solução?
>
>Você esgotou a memória RAM disponível e o PostgreSQL não conseguiu alocar mais.
>
>>
>> Centos 6
>> 4gb RAM - Utilizando work_mem 9mb
>
>Quantas conexões?
>Quanto de shared_buffers?
>
>Se a equação:
>selects * work_mem + sub-selects * work_mem + shared_buffers + consumo
>do S.O. > RAM total
>você terá a mensagem que recebeste.
>
>Diminuir o work_mem pode resolver este problema. Suas consultas que
>precisam de memória serão um pouco mais lentas, pois o PostgreSQL fará
>arquivos temporários para suprir a necessidade. Mas não se esgotará
>toda a RAM disponível.
>
>[]s
>Flavio Gurgel
>
>
>___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mensagem "out of memory for result query"

2012-02-09 Por tôpico Flavio Henrique Araque Gurgel
> Fiz uma consulta grande no banco e recebi a mensagem "out of memory for
> result query".
> A consulta foi executada no servidor master.
> Atualmente minha work_mem esta em 9mb, sendo que foi alterada recentemente,
> e antes da alteração ainda nao havia me deparado com esta mensagem.
> A consulta é pesada a ponto de dificilmente vir a ser utilizada, mas pode
> ocorrer.
> Alguem já se deparou com isso?

Sim.

> Qual a solução?

Você esgotou a memória RAM disponível e o PostgreSQL não conseguiu alocar mais.

>
> Centos 6
> 4gb RAM - Utilizando work_mem 9mb

Quantas conexões?
Quanto de shared_buffers?

Se a equação:
selects * work_mem + sub-selects * work_mem + shared_buffers + consumo
do S.O. > RAM total
você terá a mensagem que recebeste.

Diminuir o work_mem pode resolver este problema. Suas consultas que
precisam de memória serão um pouco mais lentas, pois o PostgreSQL fará
arquivos temporários para suprir a necessidade. Mas não se esgotará
toda a RAM disponível.

[]s
Flavio Gurgel
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Mensagem "out of memory for result query"

2012-02-09 Por tôpico Tulio Santos
Bom dia pessoal,


Fiz uma consulta grande no banco e recebi a mensagem "out of memory for result 
query".
A consulta foi executada no servidor master.
Atualmente minha work_mem esta em 9mb, sendo que foi alterada recentemente, e 
antes da alteração ainda nao havia me deparado com esta mensagem.

A consulta é pesada a ponto de dificilmente vir a ser utilizada, mas pode 
ocorrer.
Alguem já se deparou com isso?
Qual a solução?


Centos 6
4gb RAM - Utilizando work_mem 9mb


Postgresql 9.1
2 servers com replicação Streaming e Hot-Standby
 
Att,
Tulio
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral