Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
. Alguma sugestão do que pode estar acontecendo, pois não temos nem 50 conexões simultâneas que estourem esse tamanho? Aumentei para 3GB e continua da mesma forma. Luiz Carlos ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
2013/7/1 Luiz Carlos L. Nogueira Jr. lcnogueir...@gmail.com Pessoal, Configurei o work_mem do meu postgres para 4MB. Só que aparecem mais linhas no meu log e com tamanhos menores que 4MB. Em geral, a conta deve ser: work_mem (novo) = wok_mem (antigo) + maior_arquivo_temporario + valor_extra Ou seja, o valor do arquivo temporário que aparece pode ser o que o PostgreSQL precisou ***além*** do work_mem. O valor_extra é difícil de calcular, mas pode ser uma aproximação. 2013-07-01 11:08:26 BRT [25765]: [217-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(35567) 0:13/1092 LOG: temporary file: path base/pgsql_tmp/pgsql_tmp25765.107, size 504624 2013-07-01 11:08:35 BRT [26091]: [135-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(35683) 0:40/778 LOG: temporary file: path base/pgsql_tmp/pgsql_tmp26091.66, size 3476016 2013-07-01 11:08:35 BRT [26091]: [137-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(35683) 0:40/778 LOG: temporary file: path base/pgsql_tmp/pgsql_tmp26091.67, size 2801864 No seu caso eu colocaria work_mem para pelo menos 10MB (se tiver memória para isso, claro), pois veja que a seção 16091 gerou cerca de 6MB de arquivos temporários. Isso acontece pq estourou meu maintenance_work_mem? work_mem = 4MB maintenance_work_mem = 1500MB Nesse caso ocorreu por ter estourado o work_mem, não o maintenance_work_mem. A não ser que estava executando algum CREATE INDEX, ADD CONSTRAINT, etc. 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
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
2013/7/2 Luiz Carlos L. Nogueira Jr. lcnogueir...@gmail.com . Alguma sugestão do que pode estar acontecendo, pois não temos nem 50 conexões simultâneas que estourem esse tamanho? Aumentei para 3GB e continua da mesma forma. O tamanho dos arquivos temporários não dependem da quantidade de conexões (não de cada um). Acho que você está atacando a coisa de forma errada, primeiro tente determinar qual(is) a(s) consulta(s) que precisa(m) desses arquivos temporários e verifique se não é possível otimizá-las. Nos logs, a consulta aparece na mesma seção com prefixo STATEMENT:. 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
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Em 2 de julho de 2013 09:51, Luiz Carlos L. Nogueira Jr. lcnogueir...@gmail.com escreveu: Infelizmente não temos esse canal de comunicação com quem desenvolve. Apenas tentamos fazer o banco ficar vivo com a aplicação que nos mandam. Já tinha solicitado mudar voltar o work_mem ao que era antes, mas estou no aguardo. A mudança pra 4MB foi depois das 10:00h. (antes era 50MB) Out of memory é nosso maior problema hoje em dia e o pessoal fica atacando todos os lados para tentar resolver esse problema. Mandei o resultado do pgbadger de ontem (anexo) pra vocês terem uma noção do que estou falando. DayHourTemporary filesCheckpointsCountAv. sizeWrote buffers AddedRemoved RecycledWrite time (sec)Sync time (sec)Total time (sec)Jul 01 1,782006 318.5350.845319.555 01001,706006299.776 4.28306.012 02001,706006291.2772.641 294.667 0300850007154.751 0.536155.579 040022800644.712 0.34745.183 050 0220063.343 0.0593.691 06007000612.97 0.19213.246 070013,2670061,342.5632.382 1,345.067 080041,76200171,799.65 2.4071,802.207 090050,34300231,799.473 3.331,803.222 103,5041,422,158.8674,9940037 1,570.574.7711,576.218 11 6,5891,555,362.3448,7610023 1,799.4533.1991,803.115 124,4141,617,694.54 44,0350021 1,799.8031.8921,801.845 134,2661,591,733.9724,48500111,799.209 1.6781,801.092 145,5901,544,146.8046,6500019 1,799.5462.7381,802.66 15 7,4401,596,696.5850,5600024 1,795.2952.4971,797.963 166,3151,487,407.72 72,5920034 1,798.6753.81,802.758 174,1971,811,036.9928,6950016 1,799.162 1.5221,801.012 182,9221,885,185.649,6740071,614.54 1.2131,616.126 19 1,6721,897,135.944,150006830.22 0.82831.138 202,0831,724,297.358,608006 1,380.218 0.6971,380.993 212,3141,628,368.376,7610061,339.318 0.792 1,340.218 221,2841,832,566.919,133007830.726 1.255832.391 231,044 1,573,491.845,3800061,031.07 0.6541,032 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Em 2 de julho de 2013 10:20, Luiz Carlos L. Nogueira Jr. lcnogueir...@gmail.com escreveu: Em 2 de julho de 2013 09:51, Luiz Carlos L. Nogueira Jr. lcnogueir...@gmail.com escreveu: Infelizmente não temos esse canal de comunicação com quem desenvolve. Apenas tentamos fazer o banco ficar vivo com a aplicação que nos mandam. Já tinha solicitado mudar voltar o work_mem ao que era antes, mas estou no aguardo. A mudança pra 4MB foi depois das 10:00h. (antes era 50MB) Out of memory é nosso maior problema hoje em dia e o pessoal fica atacando todos os lados para tentar resolver esse problema. Mandei o resultado do pgbadger de ontem (anexo) pra vocês terem uma noção do que estou falando. DayHourTemporary filesCheckpointsCountAv. sizeWrote buffers Added RemovedRecycledWrite time (sec)Sync time (sec)Total time (sec)Jul 011,782 006318.5350.845319.555 01001,706006299.776 4.28306.012 02001,706006 291.277 2.641294.667 0300850007154.751 0.536155.579 040022800644.7120.347 45.183 0500220063.343 0.0593.691 06007000612.97 0.19213.246 070013,267 0061,342.563 2.3821,345.067 080041,76200171,799.65 2.4071,802.207 0900 50,34300231,799.473 3.331,803.222 103,5041,422,158.8674,9940037 1,570.57 4.7711,576.218 116,5891,555,362.3448,7610023 1,799.4533.1991,803.115 12 4,4141,617,694.5444,0350021 1,799.8031.8921,801.845 134,2661,591,733.97 24,4850011 1,799.2091.6781,801.092 145,5901,544,146.8046,65000191,799.546 2.7381,802.66 157,4401,596,696.5850,5600024 1,795.2952.4971,797.963 16 6,3151,487,407.7272,5920034 1,798.6753.81,802.758 174,1971,811,036.99 28,6950016 1,799.1621.5221,801.012 182,9221,885,185.649,6740071,614.54 1.2131,616.126 191,6721,897,135.944,150006830.22 0.82831.138 202,083 1,724,297.358,6080061,380.218 0.6971,380.993 212,3141,628,368.376,761006 1,339.318 0.7921,340.218 221,2841,832,566.919,133007830.726 1.255832.391 231,0441,573,491.845,3800061,031.07 0.6541,032 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral bom dia Luiz qual o tipo de conexao com o banco? nos utilizamos o dbexpress e tivemos varios erros iguais a esse, mas todos foram resolvidos via aplicacao, nao BD. -- Douglas Fabiano Specht ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Java com hibernate ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Se alguém tiver a coragem de dizer que o problema é na aplicação, será amaldiçoado por 5 gerações NUNCA o problema está na aplicação, (Tive que descontrair um pouco) ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
2013/7/2 Luiz Carlos L. Nogueira Jr. lcnogueir...@gmail.com Em 2 de julho de 2013 09:51, Luiz Carlos L. Nogueira Jr. lcnogueir...@gmail.com escreveu: Infelizmente não temos esse canal de comunicação com quem desenvolve. Apenas tentamos fazer o banco ficar vivo com a aplicação que nos mandam. Não sei se você está comentando sobre minha reposta (já que não a adicionou), mas Nem sempre otimizar uma consulta significa modificá-la, em muitos casos (muitos mesmo), a criação de um índice resolve o problema. Já tinha solicitado mudar voltar o work_mem ao que era antes, mas estou no aguardo. A mudança pra 4MB foi depois das 10:00h. (antes era 50MB) De 50MB para 4MB me parece uma mudança muito brusca! Out of memory é nosso maior problema hoje em dia e o pessoal fica atacando todos os lados para tentar resolver esse problema. É um servidor dedicado ao banco? A solução é simples, adicione uma área de swap maior. ( claro que você já tem área de swap, né?! ) Você ainda poderá ter problema de performance (ou não), mas se out-of-memory for uma situação com baixa frequência, então isso resolveria. Mandei o resultado do pgbadger de ontem (anexo) pra vocês terem uma noção do que estou falando. DayHourTemporary filesCheckpointsCountAv. sizeWrote buffers Added RemovedRecycledWrite time (sec)Sync time (sec)Total time (sec)Jul 011,782 006318.5350.845319.555 01001,706006299.776 4.28306.012 02001,706006 291.277 2.641294.667 0300850007154.751 0.536155.579 040022800644.7120.347 45.183 0500220063.343 0.0593.691 06007000612.97 0.19213.246 070013,267 0061,342.563 2.3821,345.067 080041,76200171,799.65 2.4071,802.207 0900 50,34300231,799.473 3.331,803.222 103,5041,422,158.8674,9940037 1,570.57 4.7711,576.218 116,5891,555,362.3448,7610023 1,799.4533.1991,803.115 12 4,4141,617,694.5444,0350021 1,799.8031.8921,801.845 134,2661,591,733.97 24,4850011 1,799.2091.6781,801.092 145,5901,544,146.8046,65000191,799.546 2.7381,802.66 157,4401,596,696.5850,5600024 1,795.2952.4971,797.963 16 6,3151,487,407.7272,5920034 1,798.6753.81,802.758 174,1971,811,036.99 28,6950016 1,799.1621.5221,801.012 182,9221,885,185.649,6740071,614.54 1.2131,616.126 191,6721,897,135.944,150006830.22 0.82831.138 202,083 1,724,297.358,6080061,380.218 0.6971,380.993 212,3141,628,368.376,761006 1,339.318 0.7921,340.218 221,2841,832,566.919,133007830.726 1.255832.391 231,0441,573,491.845,3800061,031.07 0.6541,032 É difícil determinar com certeza, mas pelas médias, vários desses arquivos estão com menos de 2MB, logo um work_mem de 6MB já poderia evitar boa parte desses. 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
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Nem sempre otimizar uma consulta significa modificá-la, em muitos casos (muitos mesmo), a criação de um índice resolve o problema. *-Mas isso não depende da gente. Não temos autonomia no sistema, pois ele é nacional. O que podemos fazer é dar a dica, mas não podemos garantir que ela será implementada. * De 50MB para 4MB me parece uma mudança muito brusca! *-Essa alteração foi solicitada pelo pessoal que desenvolve o sistema (CNJ). Fomos obrigados a implantar* É um servidor dedicado ao banco? A solução é simples, adicione uma área de swap maior. ( claro que você já tem área de swap, né?! ) *É dedicado, com 8 cores, 32 GB de memória. Uma máquina muito boa O estranho é que não entra na área de swap quando o out of memory ocorre,* Você ainda poderá ter problema de performance (ou não), mas se out-of-memory for uma situação com baixa frequência, então isso resolveria. *Não resolveu. temos que reiniciar os serviços várias vezes durante o dia* É difícil determinar com certeza, mas pelas médias, vários desses arquivos estão com menos de 2MB, logo um work_mem de 6MB já poderia evitar boa parte desses. Como temos memória suficiente, iria sugerir 10MB, pra evitar ao máximo o uso de disco, fora que não temos tantas transações simultâneas. Eu acho que 6MB de work_mem ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Em 02-07-2013 11:36, Luiz Carlos L. Nogueira Jr. escreveu: De 50MB para 4MB me parece uma mudança muito brusca! *-Essa alteração foi solicitada pelo pessoal que desenvolve o sistema (CNJ). Fomos obrigados a implantar* Bom, fica difícil ajudar a resolver seu problema se você não tem autonomia ou puder sugerir ajustes, certo :) *É dedicado, com 8 cores, 32 GB de memória. Uma máquina muito boa O estranho é que não entra na área de swap quando o out of memory ocorre,* Onde você viu esse out-of-memory? Log? Tem a mensagem exata? Pelo que você tem falado, não parece ter havido consumo de sua memória RAM toda. Você ainda poderá ter problema de performance (ou não), mas se out-of-memory for uma situação com baixa frequência, então isso resolveria. *Não resolveu. temos que reiniciar os serviços várias vezes durante o dia* Faço a mesma pergunta acima. É difícil determinar com certeza, mas pelas médias, vários desses arquivos estão com menos de 2MB, logo um work_mem de 6MB já poderia evitar boa parte desses. Como temos memória suficiente, iria sugerir 10MB, pra evitar ao máximo o uso de disco, fora que não temos tantas transações simultâneas. Eu acho que 6MB de work_mem Lembrando que o ajuste de work_mem não depende de reinício do servidor. Você pode fazer a alteração no conf e dar um reload. Você também pode fazer para o usuário da aplicação: ALTER USER blabla SET work_mem='10MB'; Lembre-se que apenas as novas conexões irão se aproveitar disso, as já existentes irão ficar com o valor anterior (em ambos os casos de ajuste), portanto, como sua aplicação é Java com Hibernate provavelmente tem um pool que mantem as conexões abertas, seria legal reiniciar o servidor de aplicação ou forçar as conexões a serem encerradas com pg_terminate_backend (o pool abre de novo logo após). []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: fla...@4linux.com.br __ FREE SOFTWARE SOLUTIONS ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
2013/7/2 Flavio Henrique Araque Gurgel fla...@4linux.com.br Em 02-07-2013 11:36, Luiz Carlos L. Nogueira Jr. escreveu: De 50MB para 4MB me parece uma mudança muito brusca! *-Essa alteração foi solicitada pelo pessoal que desenvolve o sistema (CNJ). Fomos obrigados a implantar* Bom, fica difícil ajudar a resolver seu problema se você não tem autonomia ou puder sugerir ajustes, certo :) Mas então acho que você poderia pelo menos analisar a consulta e sugerir a solução correta com valores mais palpáveis. A minha impressão (pela mudança de 50MB para 4MB do work_mem) é que esses valores estão sendo chutados ao acaso. *É dedicado, com 8 cores, 32 GB de memória. Uma máquina muito boa O estranho é que não entra na área de swap quando o out of memory ocorre,* Onde você viu esse out-of-memory? Log? Tem a mensagem exata? Pelo que você tem falado, não parece ter havido consumo de sua memória RAM toda. Concordo com o Gurgel. Qual o erro exato que você está vendo? Ainda, quanto de swap você tem? Certeza que está ativo? Por favor, poste o resultado do comando: $ free -m Você ainda poderá ter problema de performance (ou não), mas se out-of-memory for uma situação com baixa frequência, então isso resolveria. *Não resolveu. temos que reiniciar os serviços várias vezes durante o dia* Faço a mesma pergunta acima. É difícil determinar com certeza, mas pelas médias, vários desses arquivos estão com menos de 2MB, logo um work_mem de 6MB já poderia evitar boa parte desses. Como temos memória suficiente, iria sugerir 10MB, pra evitar ao máximo o uso de disco, fora que não temos tantas transações simultâneas. Eu acho que 6MB de work_mem Como eu já tinha dito, olhando por cima recomendaria 10MB. Ainda mais agora que sei que a máquina tem 32GB (diria até mais). E mais, qual o valor do shared_buffers? Aliás, de preferência o valor de todas variáveis não padrões, poste o resultado da consulta [1]. Lembrando que o ajuste de work_mem não depende de reinício do servidor. Você pode fazer a alteração no conf e dar um reload. Você também pode fazer para o usuário da aplicação: ALTER USER blabla SET work_mem='10MB'; Isso mesmo... =D Lembre-se que apenas as novas conexões irão se aproveitar disso, as já existentes irão ficar com o valor anterior (em ambos os casos de ajuste), portanto, como sua aplicação é Java com Hibernate provavelmente tem um pool que mantem as conexões abertas, seria legal reiniciar o servidor de aplicação ou forçar as conexões a serem encerradas com pg_terminate_backend (o pool abre de novo logo após). Não precisa disso, o work_mem irá ser alterado nas conexões abertas também. Claro que não para as consultas já em progresso. [1] http://wiki.postgresql.org/wiki/Server_Configuration 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
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
2013-07-02 09:15:05 BRT [13553]: [169-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(42870) 0:31/7039 ERROR: out of memory 2013-07-02 09:15:23 BRT [15019]: [1-1] db=,user=@ 0:31/7044 ERROR: out of memory 2013-07-02 09:15:23 BRT [14378]: [37-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43267) 0:57/1625 ERROR: out of memory 2013-07-02 09:15:42 BRT [14745]: [27-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43494) 0:45/1356 ERROR: out of memory 2013-07-02 09:16:04 BRT [14384]: [65-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43274) 0:64/782 ERROR: out of memory 2013-07-02 09:16:29 BRT [14750]: [165-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43500) 0:67/282 ERROR: out of memory 2013-07-02 09:20:28 BRT [13681]: [3-1] db=pje_cgj_descanso_p,user= postgres@192.168.251.217(46968) 0:3/10650 ERROR: out of memory 2013-07-02 09:28:47 BRT [15161]: [1-1] db=,user=@ 0:7/219 ERROR: out of memory 2013-07-02 09:29:08 BRT [14203]: [171-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43162) 0:42/682 ERROR: out of memory 2013-07-02 09:29:13 BRT [14368]: [133-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43257) 0:47/1275 ERROR: out of memory 2013-07-02 09:30:11 BRT [14200]: [364-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43159) 0:38/2850 ERROR: out of memory 2013-07-02 09:41:35 BRT [13551]: [985-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(42868) 0:18/6973 ERROR: out of memory 2013-07-02 09:42:43 BRT [15334]: [3-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43938) 0:74/81 ERROR: out of memory 2013-07-02 09:42:45 BRT [15335]: [9-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43939) 0:75/6 ERROR: out of memory 2013-07-02 09:42:46 BRT [15325]: [3-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43929) 0:31/7143 ERROR: out of memory 2013-07-02 09:42:48 BRT [15332]: [3-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43936) 0:64/791 ERROR: out of memory 2013-07-02 09:42:53 BRT [15337]: [1-1] db=,user=@ 0: FATAL: out of memory 2013-07-02 09:42:59 BRT [15333]: [3-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43937) 0:67/301 ERROR: out of memory 2013-07-02 09:43:02 BRT [13140]: [663-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(42710) 0:21/6117 ERROR: out of memory 2013-07-02 09:43:08 BRT [14753]: [23-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43503) 0:70/22 ERROR: out of memory 2013-07-02 09:43:13 BRT [14749]: [21-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43499) 0:66/45 ERROR: out of memory 2013-07-02 09:43:14 BRT [14746]: [37-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43495) 0:43/1208 ERROR: out of memory 2013-07-02 09:48:06 BRT [15329]: [81-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43933) 0:42/932 ERROR: out of memory 2013-07-02 09:48:45 BRT [14367]: [23-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43256) 0:46/1080 ERROR: out of memory 2013-07-02 09:49:05 BRT [14752]: [83-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43502) 0:69/133 ERROR: out of memory 2013-07-02 09:49:27 BRT [14380]: [219-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43269) 0:59/2243 ERROR: out of memory 2013-07-02 09:52:00 BRT [14202]: [381-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43161) 0:40/2971 ERROR: out of memory 2013-07-02 09:56:26 BRT [15327]: [45-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43931) 0:38/3136 ERROR: out of memory 2013-07-02 10:01:22 BRT [13381]: [652-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(42790) 0:28/6357 ERROR: out of memory 2013-07-02 10:02:27 BRT [15328]: [37-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43932) 0:47/1495 ERROR: out of memory 2013-07-02 10:02:32 BRT [14984]: [173-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43668) 0:34/2899 ERROR: out of memory 2013-07-02 10:02:36 BRT [15331]: [59-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43935) 0:57/1838 ERROR: out of memory 2013-07-02 10:03:14 BRT [14369]: [301-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(43258) 0:48/1368 ERROR: out of memory 2013-07-02 10:13:14 BRT [15731]: [2-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(44193) 0: FATAL: out of memory 2013-07-02 10:13:14 BRT [15736]: [2-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(44198) 0:70/0 FATAL: out of memory 2013-07-02 10:13:14 BRT [15735]: [3-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(44197) 0:64/796 ERROR: out of memory 2013-07-02 10:13:15 BRT [15726]: [3-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(44188) 0:46/1085 ERROR: out of memory 2013-07-02 10:13:15 BRT [13543]: [727-1]
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Ainda, quanto de swap você tem? Certeza que está ativo? Por favor, poste o resultado do comando: *$ free -m free -m total used free sharedbuffers cached Mem: 32110 30981 1129 0131 23483 -/+ buffers/cache: 7366 24743 Swap: 2559 12 2547 * Mando de novo qdo estiver dando o out of memory ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Em 02-07-2013 13:33, Luiz Carlos L. Nogueira Jr. escreveu: 2013-07-02 09:15:05 BRT [13553]: [169-1] db=pje_jud1g_descanso_p,user=user_pje_jud1g@192.168.252.19 mailto:user_pje_jud1g@192.168.252.19(42870) 0:31/7039 ERROR: out of memory Reiniciamos o servidor nesse momento. Agora é só dar um tempo e esperar o out of memory. Quando começar a dar, tirarei um free -m Uhm... acho que o free -m não vai indicar falta de memória no servidor. Provavelmente o que está dando erro é alguma função e o backend não está conseguindo alocar memória suficiente. Já tive este problema no PostgreSQL em que era um vazamento de memória no backend, bug mesmo, foi corrigido. Qual a versão exata (os três números) do PostgreSQL que está a rodando? []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: fla...@4linux.com.br __ FREE SOFTWARE SOLUTIONS ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Em 02-07-2013 13:34, Luiz Carlos L. Nogueira Jr. escreveu: Ainda, quanto de swap você tem? Certeza que está ativo? Por favor, poste o resultado do comando: *$ free -m free -m total used free sharedbuffers cached Mem: 32110 30981 1129 0131 23483 -/+ buffers/cache: 7366 24743 Swap: 2559 12 2547 * Mando de novo qdo estiver dando o out of memory Ok aguardaremos. Veja que, neste momento que mandou, a máquina ainda tem 24GiB disponíveis (leia sempre a linha -/+ buffers/cache na coluna free) Enquando isso, veja minha outra mensagem nesta thread que mandei agora a pouco. __ 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: fla...@4linux.com.br __ FREE SOFTWARE SOLUTIONS ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Em 02-07-2013 13:28, Matheus de Oliveira escreveu: Lembre-se que apenas as novas conexões irão se aproveitar disso, as já existentes irão ficar com o valor anterior (em ambos os casos de ajuste), portanto, como sua aplicação é Java com Hibernate provavelmente tem um pool que mantem as conexões abertas, seria legal reiniciar o servidor de aplicação ou forçar as conexões a serem encerradas com pg_terminate_backend (o pool abre de novo logo após). Não precisa disso, o work_mem irá ser alterado nas conexões abertas também. Claro que não para as consultas já em progresso. Desculpe, mas tem que abrir nova conexão sim: Terminal A: flavio=# show work_mem ; work_mem -- 1MB (1 registro) Terminal B: flavio=# alter user flavio set work_mem = '10MB'; ALTER ROLE flavio=# Terminal A no mesmo psql já aberto: flavio=# show work_mem ; work_mem -- 1MB (1 registro) O mesmo ocorre se alterar no conf e fizer reload. Só muda para as novas conexões. []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: fla...@4linux.com.br __ FREE SOFTWARE SOLUTIONS ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Pessoal, PostgreSQL 9.1.6 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit Luiz Carlos ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Em 02-07-2013 14:00, Luiz Carlos L. Nogueira Jr. escreveu: Pessoal, PostgreSQL 9.1.6 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit Luiz Carlos Provavelmente você está afetado por um dos seguintes bugs: Provavelmente é este aqui o seu problema, corrigido na 9.1.7: Fix memory leaks when sending composite column values to the client (Tom Lane) Ou este aqui, corrigido na 9.1.5: Fix memory leak in ARRAY(SELECT ...) subqueries (Heikki Linnakangas, Tom Lane) Mas também tem este corrigido na 9.1.7 (menos provável): Avoid corruption of internal hash tables when out of memory (Hitoshi Harada) Existe este corrigido na 9.1.9 (mas duvido que seja seu caso): Eliminate memory leaks in PL/Perl's spi_prepare() function (Alex Hunsaker, Tom Lane) Portanto, você *obrigatoriamente* terá de atualizar seu PostgreSQL para a versão 9.1.9. No mínimo, você tem que ir pra 9.1.7 pois tem bug relacionado ao seu problema *corrigido* lá. Não adianta nem chorar a velha ladainha do foi homologado pro 9.1.4 por ordem do supremo rei das arábias. Tem que atualizar antes de tentar qualquer outra solução. Não, não vai quebrar a aplicação com esta atualização. []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: fla...@4linux.com.br __ FREE SOFTWARE SOLUTIONS ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Pessoal, Começou o out of memory. 2013-07-02 15:16:24 BRT [20019]: [25-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(60910) 0:86/197 ERROR: out of memory 2013-07-02 15:16:29 BRT [17045]: [1298-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(59263) 0:73/5073 ERROR: out of memory 2013-07-02 15:20:32 BRT [20018]: [17-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(60911) 0:84/576 ERROR: out of memory 2013-07-02 15:20:57 BRT [19479]: [53-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(60631) 0:44/830 ERROR: out of memory 2013-07-02 15:23:25 BRT [20015]: [45-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(60907) 0:75/629 ERROR: out of memory 2013-07-02 15:25:13 BRT [20016]: [28-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(60908) 0:80/1507 ERROR: out of memory 2013-07-02 15:25:18 BRT [20034]: [21-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(60927) 0:100/102 ERROR: out of memory 2013-07-02 15:25:25 BRT [19481]: [95-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(60633) 0:46/3711 ERROR: out of memory 2013-07-02 15:27:00 BRT [20195]: [3-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(32827) 0:106/84 ERROR: out of memory 2013-07-02 15:27:08 BRT [20039]: [3-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(60932) 0:105/46 ERROR: out of memory 2013-07-02 15:27:56 BRT [20190]: [3-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(32821) 0:100/149 ERROR: out of memory 2013-07-02 15:28:08 BRT [20194]: [31-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(32825) 0:86/225 ERROR: out of memory 2013-07-02 15:28:37 BRT [20223]: [1-1] db=,user=@ 0: FATAL: out of memory 2013-07-02 15:28:46 BRT [20199]: [11-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(32831) 0:110/151 ERROR: out of memory 2013-07-02 15:29:07 BRT [16860]: [612-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(59104) 0:51/2261 ERROR: out of memory 2013-07-02 15:29:18 BRT [17793]: [246-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(59827) 0:47/2684 ERROR: out of memory 2013-07-02 15:30:29 BRT [20036]: [14-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(60929) 0:102/183 ERROR: out of memory ^C [postgres@spdbpostgre01 pg_log]$ free -m total used free sharedbuffers cached Mem: 32110 31875234 0110 19401 -/+ buffers/cache: 12363 19746 Swap: 2559 19 2540 Luiz Carlos ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Em 02-07-2013 15:36, Luiz Carlos L. Nogueira Jr. escreveu: Pessoal, Começou o out of memory. Você leu a mensagem que falei sobre os bugs existentes na versão que você roda? Atualize. Não tem escolha. [postgres@spdbpostgre01 pg_log]$ free -m total used free sharedbuffers cached Mem: 32110 31875234 0110 19401 -/+ buffers/cache: 12363 19746 Swap: 2559 19 2540 Como esperado, você ainda tem 19GiB livres no servidor. Não está faltando memória no servidor. O out-of-memory ocorre no backend (o processo que atende à conexão). É um vazamento de memória (memory leak). Sua única alternativa é atualizar. Se aumentar work_mem, só vai demorar mais para acontecer o out-of-memory. Mas ele *vai* acontecer de novo. []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: fla...@4linux.com.br __ FREE SOFTWARE SOLUTIONS ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Ok. Já tinha repassado acima para autorização de atualização. É ruim demais trabalhar de mão amarradas, mas PACIÊNCIA! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Pessoal, Configurei o work_mem do meu postgres para 4MB. Só que aparecem mais linhas no meu log e com tamanhos menores que 4MB. 2013-07-01 11:08:26 BRT [25765]: [217-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(35567) 0:13/1092 LOG: temporary file: path base/pgsql_tmp/pgsql_tmp25765.107, size 504624 2013-07-01 11:08:35 BRT [26091]: [135-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(35683) 0:40/778 LOG: temporary file: path base/pgsql_tmp/pgsql_tmp26091.66, size 3476016 2013-07-01 11:08:35 BRT [26091]: [137-1] db=pje_jud1g_descanso_p,user= user_pje_jud1g@192.168.252.19(35683) 0:40/778 LOG: temporary file: path base/pgsql_tmp/pgsql_tmp26091.67, size 2801864 Isso acontece pq estourou meu maintenance_work_mem? work_mem = 4MB maintenance_work_mem = 1500MB Luiz Carlos ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] work_mem gerando pgsql_tmp com tamanhos pequenos
Em 01-07-2013 11:18, Luiz Carlos L. Nogueira Jr. escreveu: Pessoal, Configurei o work_mem do meu postgres para 4MB. Só que aparecem mais linhas no meu log e com tamanhos menores que 4MB. 2013-07-01 11:08:26 BRT [25765]: [217-1] db=pje_jud1g_descanso_p,user=user_pje_jud1g@192.168.252.19 mailto:user_pje_jud1g@192.168.252.19(35567) 0:13/1092 LOG: temporary file: path base/pgsql_tmp/pgsql_tmp25765.107, size 504624 2013-07-01 11:08:35 BRT [26091]: [135-1] db=pje_jud1g_descanso_p,user=user_pje_jud1g@192.168.252.19 mailto:user_pje_jud1g@192.168.252.19(35683) 0:40/778 LOG: temporary file: path base/pgsql_tmp/pgsql_tmp26091.66, size 3476016 2013-07-01 11:08:35 BRT [26091]: [137-1] db=pje_jud1g_descanso_p,user=user_pje_jud1g@192.168.252.19 mailto:user_pje_jud1g@192.168.252.19(35683) 0:40/778 LOG: temporary file: path base/pgsql_tmp/pgsql_tmp26091.67, size 2801864 Isso acontece pq estourou meu maintenance_work_mem? Sim []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: fla...@4linux.com.br __ FREE SOFTWARE SOLUTIONS ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral