De: "Fábio Telles Rodriguez" <fabio.tel...@gmail.com> Para: "Comunidade PostgreSQL Brasileira" <pgbr-geral@listas.postgresql.org.br> Enviadas: Quarta-feira, 6 de setembro de 2017 12:34:38 Assunto: Re: [pgbr-geral] Ajuda parâmetro work_mem Em 6 de setembro de 2017 11:19, Neto pr < neto...@gmail.com > escreveu: Pessoal Já li em alguns foruns como abaixo, que alterar o Shared_Buffer para deixar mais memória RAM disponível p/ o SGBD as vezes acaba por diminuir o desempenho: https://www.postgresql.org/message-id/CACezXZ_w7HbqSxZ=5SJH=kxb4nbdnbpdejttsau6ec1aeo4...@mail.gmail.com Mas e no caso do Work_Mem, responsável por limitar a quantidade de memória RAM para o operacões de classificacão e ordenacão para uma única operacão, será que teria algum efeito colateral em alterar isso, para uma quantidade maior? Estou fazendo testes com o benchmark TPCH e quase todas as consultas tem group e order by. https://www.maxwell.vrac.puc-rio.br/acessoConteudo.php?nrseqoco=42150 (pagina 37) Peguei duas indicacões pelas ferramentas abaixo, no meu caso estou com um Servidor dedicado e com poucas conexões sendo utilizadas, no máximo 10, e vejam o que foi me indicado: - pgtune = 104 MB (para 10 conexões no máximo). - pgconfig.org = 410 MB (para 10 conexões no máximo) Alguma opinião se a alteracão desse parametro, traria algum efeito maléfico no desempenho? Que valores utilizam x conexões? Os outros parametros eu utilizo o padrão, a versão do postgresql é a 10b3, Proc Xeon 2.8GHz/4-core- 8gb Ram, SO Debian 8. O valor do WORK_MEM deve ser o maior possível. Mas o melhor valor pode variar um pouco com o seu ambiente. Primeiro eu deixo para logar por um tempo no servidor a criação de tabelas temporárias. Depois gero um relatório com o pgBadger e avalio a geração de arquivos temporários no pgBadger. - Se o volume de tabelas temporárias criadas em disco for muito pequeno, é sinal de que não há muita necessidade de aumentar o WORK_MEM. - Se apenas algumas sessões estão gerando grandes arquivos temporários, eu tento ajustar o WORK_MEM maior só para aquelas sessões ou usuários. - Se muitas sessões estão gerando arquivos temporários eu aumento o WORK_MEM globalmente. Em geral ajusto o MAX_CONNECTIONS x WORK_MEM para algo entre 25% a 50% da RAM do servidor. Mas isso é apenas um chute inicial, imaginando que teremos 25% para o SHARED_BUFFERS e 25% para as sessões e 50% para o cache do SO. -- Atenciosamente, Fábio Telles Rodriguez blog: http:// s avepoint.blog.br e-mail / gtalk / MSN: fabio.tel...@gmail.com Skype: fabio_telles Timbira - A empresa brasileira de Postgres http://www.timbira.com.br Fábio, Sei que não é o foco do tópico, mas fiquei com dúvida no cálculo da memória para o PostgreSQL, porque existe muitas fôrmulas na internet. Porém, é tudo empirico, não visualizei nenhum tópico até hoje que explica porque das configurações. Eu por exemplo, sempre utilizei essa: Calculo da memória = (shared_buffers + ( 2 * max_connections * work_mem) + ( autovacuum_max_workers * maintenance_work_mem) ) Outra dúvida do work_mem, com esse acompanhamento é se seria possível acompanhar a quantidade de work_mem utilizada para operações de ordenação, join e distinct, nas consultas. Nesse mesmo acompanhamento para tabelas temporárias seria possível visualizar isso? Obrigado. _______________________________________________ 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