2017-05-16 22:23 GMT-03:00 Franklin Anderson de Oliveira Souza < frankli...@gmail.com>:
> Eh um sistema legado nao tem como mexer, o servidor fica com uma media de > 160 conexoes abertas em sua maioria idle. acho que por enquanto isso nao e > um problema serio ! > > Quanto as minha duvida achei varias referencias no historico desde grupo, > eu devia ter pesquisado antes de enviar este email !!! Ja me ajudou ehehehe > > Em 16 de maio de 2017 21:20, Francisco Porfirio < > francisco.porfi...@gmail.com> escreveu: > >> >> Em ter, 16 de mai de 2017 às 21:38, Franklin Anderson de Oliveira Souza < >> frankli...@gmail.com> escreveu: >> >>> fui incrementando ao longo dos meses, com esse valor os arquivos >>> temporario ($PGDTA/base/pgsql_tmp/) diminuiram bastante ! >>> >> Considere revisar suas querys no lugar de incrementar desta forma o >> work_mem. >> >> Escrita de tempfile em grande quantidade não é algo muito interessante, e >> se usar demais a work_mem você ocupa toda a memória só com ela. >> >> Masss... Se ainda assim você precisar disso tudo, imagino que precisará >> rever a memória do teu Servidor, e os parâmetros de memória do Postgres/SO >> >> Reforço que eu me concentraria em verificar como poderia baixar a >> work_mem >> >>> >>> Em 16 de maio de 2017 20:17, Francisco Porfirio < >>> francisco.porfi...@gmail.com> escreveu: >>> >>>> >>>> Em ter, 16 de mai de 2017 às 17:50, Franklin Anderson de Oliveira Souza >>>> <frankli...@gmail.com> escreveu: >>>> >>>>> Ola caros amigos, desculpe a falta de acentuacao !! >>>>> >>>>> Tenho um servidor postgresql que com uma frequencia quase que diaria o >>>>> mesmo altera para o estado de recovery, observando o log do postgresql >>>>> encontrei o seguinte trecho: >>>>> >>>>> ----------------- >>>>> LOG: server process (PID 2529) was terminated by signal 9: Killed >>>>> DETAIL: Failed process was running: select...... >>>>> LOG: terminating any other active server processes >>>>> WARNING: terminating connection because of crash of another server >>>>> process >>>>> DETAIL: The postmaster has commanded this server process to roll back >>>>> the current transaction and exit, because another server process exited >>>>> abnormally and possibly corrupted shared memory. >>>>> HINT: In a moment you should be able to reconnect to the database and >>>>> repeat your command. >>>>> ----------------- >>>>> >>>>> Em seguida observando o log do CentOS encontrei o seguinte: >>>>> >>>>> ----------------- >>>>> kernel: postmaster invoked oom-killer: gfp_mask=0x280da, order=0, >>>>> oom_adj=0, oom_score_adj=0 >>>>> kernel: postmaster cpuset=/ mems_allowed=0 >>>>> kernel: Pid: 51831, comm: postmaster Not tainted >>>>> 2.6.32-504.8.1.el6.x86_64 #1 >>>>> kernel: Call Trace: >>>>> kernel: [<ffffffff810d40c1>] ? cpuset_print_task_mems_allowed >>>>> +0x91/0xb0 >>>>> kernel: [<ffffffff81127300>] ? dump_header+0x90/0x1b0 >>>>> kernel: [<ffffffff8122eb0c>] ? security_real_capable_noaudit+0x3c/0x70 >>>>> kernel: [<ffffffff81127782>] ? oom_kill_process+0x82/0x2a0 >>>>> kernel: [<ffffffff811276c1>] ? select_bad_process+0xe1/0x120 >>>>> kernel: [<ffffffff81127bc0>] ? out_of_memory+0x220/0x3c0 >>>>> kernel: [<ffffffff811344df>] ? __alloc_pages_nodemask+0x89f/0x8d0 >>>>> kernel: [<ffffffff8116c79a>] ? alloc_pages_vma+0x9a/0x150 >>>>> kernel: [<ffffffff8114f6fd>] ? handle_pte_fault+0x73d/0xb00 >>>>> kernel: [<ffffffff8116c69a>] ? alloc_pages_current+0xaa/0x110 >>>>> kernel: [<ffffffff8109eb00>] ? autoremove_wake_function+0x0/0x40 >>>>> kernel: [<ffffffff8114fcea>] ? handle_mm_fault+0x22a/0x300 >>>>> kernel: [<ffffffff8104d0d8>] ? __do_page_fault+0x138/0x480 >>>>> kernel: [<ffffffff8144a25e>] ? sys_recvfrom+0xee/0x180 >>>>> kernel: [<ffffffff8152ae7e>] ? mutex_lock+0x1e/0x50 >>>>> kernel: [<ffffffff8118e2ec>] ? generic_file_llseek_size+0x8c/0xd0 >>>>> kernel: [<ffffffff8152ffde>] ? do_page_fault+0x3e/0xa0 >>>>> kernel: [<ffffffff8152d395>] ? page_fault+0x25/0x30 >>>>> ----------------- >>>>> >>>>> Pesquisando encontrei na documentacao uma referencia a esse >>>>> problema[1] que mostra claramente que a funcao do kernel esta matando o >>>>> postmaster[2] deixando-o em recovery. >>>>> >>>>> O que eu fiz em um primeiro momento foi incrementar a memoria e depois >>>>> em um horario mais apropriado efetuarei as alteracoes sugeridas na >>>>> documentacao(vm.overcommit_memory, vm.overcommit_ratio, shmmax). >>>>> >>>>> Perguntas: >>>>> >>>>> 1 - Gostaria de saber de voces se me raciocinio esta correto, se ja >>>>> passaram por isso e que decisoes tomaram? >>>>> 2- Estou com dificuldade de mensurar o consumo de memoria do >>>>> postgresql, qual a melhor abordagem ?! Pelo comando htop vejo dos 32 gigas >>>>> hoje disponiveis (antes era 24 aumentei para 32) 98% esta ocupada, sendo >>>>> que 1/3 equivale no htop com a cor verde e 60% com a cor amarela[3], isso >>>>> significa que esta usando toda a memoria ?! >>>>> >>>> Use o pg_activity para isso. > >>>>> Dados adicionais: >>>>> Centos 6.6 >>>>> Postgresql 9.3.6 >>>>> kernel 2.6.32 >>>>> >>>>> effective_cache_size = 6GB >>>>> shared_buffers = 6GB >>>>> work_mem = 576MB >>>>> >>>> Esse valor é muito elevado, assim como o amigo já disse, é melhor vc revisar as queries do que utilizar esse parâmetro tão alto. Caso a sua query executa mais de 1 operação de ordenação e coisas do tipo, será Noperações * número de usuários executando * work_mem, então facilmente vc irá estourar o seu limite. > >>>> Me chamou muito atenção esse valor que você está usando na work_mem. >>>> Qual o seu max_connections? >>>> >>>> Com o Work_mem deste tamanho você pode estourar o uso da memória super >>>> rápido. >>>> >>>>> >>>>> >>>>> [1] - https://www.postgresql.org/docs/9.3/static/kernel-resources.html >>>>> [2] - https://www.postgresql.org/docs/9.3/static/kernel-resources.html >>>>> [3] - https://serverfault.com/questions/180711/what-exactly-do- >>>>> the-colors-in-htop-status-bars-mean >>>>> >>>>> -- >>>>> foobar >>>>> _______________________________________________ >>>>> pgbr-geral mailing list >>>>> pgbr-geral@listas.postgresql.org.br >>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>>> >>>> -- >>>> Atenciosamente >>>> Francisco Porfirio Ribeiro Neto >>>> >>>> _______________________________________________ >>>> pgbr-geral mailing list >>>> pgbr-geral@listas.postgresql.org.br >>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>>> >>> >>> >>> >>> -- >>> foobar >>> _______________________________________________ >>> pgbr-geral mailing list >>> pgbr-geral@listas.postgresql.org.br >>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> >> -- >> Atenciosamente >> Francisco Porfirio Ribeiro Neto >> >> _______________________________________________ >> pgbr-geral mailing list >> pgbr-geral@listas.postgresql.org.br >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> > > > > -- > foobar > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral