3. Servidor sentando - load average alto (Deliane Andrade) Servidor de banco de dados ele tenta colocar toda a informação em mémoria para poder ter um tempo de resposta mais eficiente.
O seu servidor esta utilizando um storage (disco) 1TB, ai vem as perguntas: - há um array de discos para formar esse storage de um 1TB? Se sim qual o nível RAID que você esta utilizando? - você consegue analisar o IO de disco atual do seu servidor? - As ferramentas PgFouine e pgbadger irão te auxiliar para fazer analise de log e demonstrar quais as operações que esão levando maior tempo de execução. Mas o Load pode ter aumentando por causa do IO de disco. Utilize as ferramentas que citei no ultimo ítem você poderá verificar o que alterar no arquivo postgresql.conf Em 8 de fevereiro de 2013 11:48, < [email protected]> escreveu: > Send pgbr-geral mailing list submissions to > [email protected] > > To subscribe or unsubscribe via the World Wide Web, visit > > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > or, via email, send a message with subject or body 'help' to > [email protected] > > You can reach the person managing the list at > [email protected] > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of pgbr-geral digest..." > > > Tópicos de Hoje: > > 1. ÍNDICES EM TABELAS QUE RECEBEM MUITOS INSERTS, UPDATES > (Wellington Openheimer) > 2. Re: ÍNDICES EM TABELAS QUE RECEBEM MUITOS INSERTS, UPDATES > (Jean Pereira) > 3. Servidor sentando - load average alto (Deliane Andrade) > 4. Function atualiza valor com nulo (Edson - Lista) > 5. Re: Function atualiza valor com nulo (Wolak) > 6. Re: Servidor sentando - load average alto (Euler Taveira) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Fri, 8 Feb 2013 09:47:09 -0200 > From: Wellington Openheimer <[email protected]> > Subject: [pgbr-geral] ÍNDICES EM TABELAS QUE RECEBEM MUITOS INSERTS, > UPDATES > To: [email protected] > Message-ID: > <CAMXtFXECBNQjsoncuJA67KbJJV4NZsG3p1ctDU= > [email protected]> > Content-Type: text/plain; charset="iso-8859-1" > > Olá pessoal, > > Temos uma tabela que em um determinado tempo ela é muito consultada e ao > mesmo tempo sofre muitos inserts e updates. > > Acontece que a consulta é bem complexa e está ficando cada vez mais lenta > com o aumento do número de dados. > > Decidimos então testar a criação de uns índices com os principais campos > nas cláusulas WHERE das consultas mais lentas. > > A consulta ficou bem mais rápida, mas estamos receosos se estes índices > irão deixar mais lenta a inserção e update de dados > pois esses comandos teriam então que inserir no índice também. > > > Obs.: > > Criamos 2 índices compostos btree. > (campo1, campo2, campo3) > (campo4, campo2, campo3) > > campo2 e campo3 fazem parte da chave da tabela que possui 5 campos chave. > > Detalhe: temos 2 consultas muito pesadas que usam no where campo1, campo2 e > campo3 e campo4, campo2 e campo3 respectivamente. > > > Seremos muito grato se puderem nos ajudar. > > > att, > > Wellington > -------------- Próxima Parte ---------- > Um anexo em HTML foi limpo... > URL: > http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20130208/bcdef8f0/attachment-0001.htm > > ------------------------------ > > Message: 2 > Date: Fri, 08 Feb 2013 10:23:53 -0200 > From: Jean Pereira <[email protected]> > Subject: Re: [pgbr-geral] ÍNDICES EM TABELAS QUE RECEBEM MUITOS > INSERTS, UPDATES > To: Comunidade PostgreSQL Brasileira > <[email protected]> > Message-ID: <[email protected]> > Content-Type: text/plain; charset="iso-8859-1" > > Bom dia. > > Bom, tenho uma situação muito parecida por aqui. > Temos um banco de dados que nasceu no access a muitos e muitos anos > atrás, foi para sqlserver e a muitos anos está no postgresql. > > Trabalhamos com sistema de saúde publica, e nossas tabelas de produção > (digo os dados de procedimentos executados e tal), são uma "porcaria", e > para alterar essas tabelas é o "bixo". > > Minha solução foi adotar esses índices pelo qual você referiu, mas eu > não sei essa informação também. > Mas, pelo que constatamos por aqui, a melhora foi muito significativa, e > até agora não detectamos problemas perante aos índices. > > Abraço. > > On 02/08/2013 09:47, Wellington Openheimer wrote: > > Olá pessoal, > > > > Temos uma tabela que em um determinado tempo ela é muito consultada e > > ao mesmo tempo sofre muitos inserts e updates. > > > > Acontece que a consulta é bem complexa e está ficando cada vez mais > > lenta com o aumento do número de dados. > > > > Decidimos então testar a criação de uns índices com os principais > > campos nas cláusulas WHERE das consultas mais lentas. > > > > A consulta ficou bem mais rápida, mas estamos receosos se estes > > índices irão deixar mais lenta a inserção e update de dados > > pois esses comandos teriam então que inserir no índice também. > > > > > > Obs.: > > > > Criamos 2 índices compostos btree. > > (campo1, campo2, campo3) > > (campo4, campo2, campo3) > > > > campo2 e campo3 fazem parte da chave da tabela que possui 5 campos chave. > > > > Detalhe: temos 2 consultas muito pesadas que usam no where campo1, > > campo2 e campo3 e campo4, campo2 e campo3 respectivamente. > > > > > > Seremos muito grato se puderem nos ajudar. > > > > > > att, > > > > Wellington > > > > > > > > _______________________________________________ > > pgbr-geral mailing list > > [email protected] > > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -------------- Próxima Parte ---------- > Um anexo em HTML foi limpo... > URL: > http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20130208/7d6552a8/attachment-0001.htm > > ------------------------------ > > Message: 3 > Date: Fri, 8 Feb 2013 09:27:57 -0300 > From: Deliane Andrade <[email protected]> > Subject: [pgbr-geral] Servidor sentando - load average alto > To: Comunidade PostgreSQL Brasileira > <[email protected]> > Message-ID: > < > caoa7u111vnquamb0-vv-wnazhgdnwjyiy93zdhk7fhyivuc...@mail.gmail.com> > Content-Type: text/plain; charset="iso-8859-1" > > Bom dia pessoal! > Estamos com problema em um servidor Xenon de 16 núcleos com 16G de RAM. HD > SATA DE 1T. > O postgresql é o 8.4.4 > > > O load average da máquina está da forma abaixo(sendo que já chegou até a > 300) : > > top - 09:20:09 up 2 days, 2:12, 6 users, load average: 96.90, 116.55, > 118.03 > Tasks: 488 total, 2 running, 486 sleeping, 0 stopped, 0 zombie > Cpu(s): 3.2%us, 0.7%sy, 0.0%ni, 56.5%id, 39.7%wa, 0.0%hi, 0.0%si, > 0.0%st > Mem: 16458500k total, 14891364k used, 1567136k free, 19108k buffers > Swap: 9765616k total, 8208k used, 9757408k free, 13512336k cached > > A configuração do postgresql.conf atual é a seguinte: (sendo que mudaram a > mesma aleatoriamente) > > listen_addresses = '*' # what IP address(es) to listen on; > # comma-separated list > of addresses; > # defaults to > 'localhost', '*' = all > # (change requires > restart) > port = 5432 # (change requires restart) > max_connections = 900 # (change requires restart) > > shared_buffers = 512000kB > work_mem=15729kB > maintenance_work_mem = 2GB > wal_buffers = 64kB > checkpoint_segments =300 > effective_cache_size = 14680060kB > > Esse servidor é acessado por três aplicações diferentes que executam muitas > consultas e updates , e alguns poucos deletes. > A base encontra-se hoje com 83G de tamanho. > Já rodei o vacuum full. > Já fizeram o reindex. > Enfim, os sistemas estão muito lentos, quase parando. > Alguém tem alguma sugestão de alteração na configuração para que a > performance melhore? > > Att, > Deliane Andrade > -------------- Próxima Parte ---------- > Um anexo em HTML foi limpo... > URL: > http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20130208/f70b4ac7/attachment-0001.htm > > ------------------------------ > > Message: 4 > Date: Fri, 08 Feb 2013 10:52:03 -0200 > From: Edson - Lista <[email protected]> > Subject: [pgbr-geral] Function atualiza valor com nulo > To: [email protected] > Message-ID: <[email protected]> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Bom dia pessoal, > > Não sei que esta errado com a minha function, ao fazer o update ela > atualizando os valor com null. > O que pode estar errado?, > Segue abaixo: > > CREATE OR REPLACE FUNCTION public.baixa_saldo_conta_pagar ( > ) > RETURNS trigger AS > $body$ > BEGIN > IF (TG_OP = 'INSERT') THEN > UPDATE contas SET > vlr_saldo_sai = (vlr_saldo_sai + NEW.vlr_pgto), > vlr_saldo = (vlr_saldo - NEW.vlr_pgto), > dt_usualt = now(), > nm_usualt = new.nm_usualt > WHERE cd_conta = NEW.cd_conta; > RETURN NEW; > END IF; > IF (TG_OP = 'UPDATE') THEN > UPDATE contas > SET vlr_saldo_sai = ((vlr_saldo_sai - OLD.vlr_pgto) + > NEW.vlr_pgto), > vlr_saldo = ((vlr_saldo + OLD.vlr_pgto) - NEW.vlr_pgto), > nm_usualt = new.nm_usualt > WHERE cd_conta = NEW.cd_conta; > RETURN NEW; > END IF; > IF (TG_OP = 'DELETE') THEN > UPDATE contas > set vlr_saldo_sai = (vlr_saldo_sai - OLD.vlr_pgto), > vlr_saldo = (vlr_saldo + OLD.vlr_pgto), > dt_usualt = OLD.dt_usualt, > nm_usualt = OLD.nm_usualt > where cd_conta = OLD.cd_conta; > RETURN OLD; > END IF; > END; > $body$ > LANGUAGE 'plpgsql' > VOLATILE > CALLED ON NULL INPUT > SECURITY INVOKER > COST 100; > > []'s > > Edson > > > ------------------------------ > > Message: 5 > Date: Fri, 08 Feb 2013 11:23:18 -0200 > From: Wolak <[email protected]> > Subject: Re: [pgbr-geral] Function atualiza valor com nulo > To: Comunidade PostgreSQL Brasileira > <[email protected]> > Message-ID: <[email protected]> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > > Em 08/02/2013 10:52, Edson - Lista escreveu: > > Bom dia pessoal, > > > > Não sei que esta errado com a minha function, ao fazer o update ela > > atualizando os valor com null. > > O que pode estar errado?, > > Segue abaixo: > > > > CREATE OR REPLACE FUNCTION public.baixa_saldo_conta_pagar ( > > ) > > RETURNS trigger AS > > $body$ > > BEGIN > > IF (TG_OP = 'INSERT') THEN > > UPDATE contas SET > > vlr_saldo_sai = (vlr_saldo_sai + NEW.vlr_pgto), > > vlr_saldo = (vlr_saldo - NEW.vlr_pgto), > > dt_usualt = now(), > > nm_usualt = new.nm_usualt > > WHERE cd_conta = NEW.cd_conta; > > RETURN NEW; > > END IF; > > IF (TG_OP = 'UPDATE') THEN > > UPDATE contas > > SET vlr_saldo_sai = ((vlr_saldo_sai - OLD.vlr_pgto) + > > NEW.vlr_pgto), > > vlr_saldo = ((vlr_saldo + OLD.vlr_pgto) - NEW.vlr_pgto), > > nm_usualt = new.nm_usualt > > WHERE cd_conta = NEW.cd_conta; > > RETURN NEW; > > END IF; > > IF (TG_OP = 'DELETE') THEN > > UPDATE contas > > set vlr_saldo_sai = (vlr_saldo_sai - OLD.vlr_pgto), > > vlr_saldo = (vlr_saldo + OLD.vlr_pgto), > > dt_usualt = OLD.dt_usualt, > > nm_usualt = OLD.nm_usualt > > where cd_conta = OLD.cd_conta; > > RETURN OLD; > > END IF; > > END; > > $body$ > > LANGUAGE 'plpgsql' > > VOLATILE > > CALLED ON NULL INPUT > > SECURITY INVOKER > > COST 100; > > > > []'s > > > > Edson > > _______________________________________________ > > pgbr-geral mailing list > > [email protected] > > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > > > Provavelmente existe um valor nulo, utilize o COALESCE(vlr_saldo,0) + > COALESCE(old.vlr_pgto,0). > > > > > ------------------------------ > > Message: 6 > Date: Fri, 08 Feb 2013 11:50:54 -0200 > From: Euler Taveira <[email protected]> > Subject: Re: [pgbr-geral] Servidor sentando - load average alto > To: Comunidade PostgreSQL Brasileira > <[email protected]> > Message-ID: <[email protected]> > Content-Type: text/plain; charset=ISO-8859-1 > > On 08-02-2013 10:27, Deliane Andrade wrote: > > O postgresql é o 8.4.4 > > > Atualize a versão (já estamos na 8.4.16) -- há inúmeras correções de bugs e > segurança. > > > O load average da máquina está da forma abaixo(sendo que já chegou até a > 300) : > > > > top - 09:20:09 up 2 days, 2:12, 6 users, load average: 96.90, 116.55, > 118.03 > > Tasks: 488 total, 2 running, 486 sleeping, 0 stopped, 0 zombie > > Cpu(s): 3.2%us, 0.7%sy, 0.0%ni, 56.5%id, 39.7%wa, 0.0%hi, 0.0%si, > 0.0%st > > > ^^^^^^^^^^^ > Você precisa aumentar a capacidade de I/O de seu servidor. > > > max_connections = 900 # (change requires restart) > > > Valor muito alto. > > > shared_buffers = 512000kB > valor muito baixo. > > > work_mem=15729kB > > maintenance_work_mem = 2GB > > wal_buffers = 64kB > valor baixo. > > > checkpoint_segments =300 > valor alto. > > > Enfim, os sistemas estão muito lentos, quase parando. > > Alguém tem alguma sugestão de alteração na configuração para que a > performance > > melhore? > > > Talvez você precise de uma consultoria para lhe indicar o que deve ser > melhorado no servidor, no PostgreSQL e quais são as rotinas de manutenção > adequadas. > > > -- > Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ > PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento > > > ------------------------------ > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > > Fim da Digest pgbr-geral, volume 50, assunto 10 > *********************************************** >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
