Re: [pgbr-geral] Mensagem "out of memory for result query"
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"
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"
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"
> 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"
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