Olá a todos! Achei muito interesante estas auterações feita no postgresql.conf. vi o ganho de performance que vc obteve, gostaria de saber qual ferramenta vc utilizou para medir a velocidade do banco?
Desde a agradeço > Thiago, como se faz essa alteração no kernel? > > > -----Mensagem original----- > De: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] nome de Thiago Risso > Enviada em: terça-feira, 26 de setembro de 2006 12:12 > Para: Grupo de Usuários do PostgreSQL no Brasil > Assunto: Re: [PostgreSQL-Brasil] Performance SCSI > > > Alterei minhas configuraçoes para : > > Altementei a shared memory do KERNEL. (Pois o FEDORA permite no MAX 32Mb) > para 1Gb ... > > postgresql.conf > > shared_buffers = 131072 > work_mem = 64048 > maintenance_work_mem = 32768 > max_fsm_pages = 320000 > wal_buffers = 32 > enable_hashagg = off > enable_seqscan = off > enable_tidscan = off > effective_cache_size = 16384 > random_page_cost = 1 > > ... > > e vejam : > > SELECT H.hierarquia ,F.funcao,count(id_cand) AS quant FROM ((area_cand AC > INNER JOIN > teste_agencia.hierarquia H ON H.id_hierarquia = AC.id_hierarquia) INNER JOIN > agencia.FUNCAO F ON F.id_funcao = AC.id_funcao)INNER JOIN > agencia.candidato_empresa CE > ON CE.id_candidato = AC.id_cand WHERE id_empresa = 1 AND F.id_funcao NOT > IN(SELECT > id_funcao FROM agencia.funcao_emp WHERE id_empresa = 1) GROUP BY > H.hierarquia,F.funcao > ORDER BY quant DESC LIMIT 10; > hierarquia | funcao | quant > --------------+----------------+------- > Auxiliar | Administrativo | 1408 > Assistente | Administrativo | 1327 > Operador | Produção | 833 > Profissional | Engenharia | 715 > Estágio | Engenharia | 563 > Estágio | Administrativo | 507 > Profissional | Recepcionista | 490 > Profissional | Montador | 347 > Auxiliar | Vendas | 330 > Profissional | Vendas | 305 > (10 rows) > > Time: 782,885 ms > > PIOROU ..... > > Vou continuar com meus testes aqui ... Quando chegar na conf ideal posto ai > pra voces > verem ! > > > On 9/25/06, Sergio Medeiros Santi < [EMAIL PROTECTED]> wrote: > > Thiago: > > Acredito que você tem nas mãos um excelente servidor. Não tenho como analisar > os tempos > que citastes, mas posso passar as configurações que enviastes com as que > tenho em um > servidor semelhante. O servidor é um Dell Poweredge Dual Xeon 3.0, 4 G de ram > e discos > hotswap scsi 15.000k em raid 0, duas placas de rede, etc ... Detalhe este > servidor usa > W2K. > > Suas configurações comparadas com as que uso: > > shared_buffers = 2048 # uso 36620 > temp_buffers = 2048 # uso o default 1000 > work_mem = 2048 # uso 64048 > max_fsm_pages = 20000 # uso 320000 > effective_cache_size = 1000 # uso 4096 > maintenence_work_mem=???? # uso 16384 > max_stack_deph=???? # uso 4096 > random_page_cost = 4 # idem > fsync = on # idem > enable_bitmapscan = on # idem > enable_seqscan = ?? # uso off > enable_tidscan = ?? # uso off > enable_hashagg = ?? # uso off > > Espero que ajude, > > > Sergio > > > ----- Original Message ----- > From: Cleber Nardelli <mailto:[EMAIL PROTECTED]> > To: Grupo de <mailto:[email protected]> Usuários do PostgreSQL > no Brasil > Sent: Monday, September 25, 2006 3:59 PM > Subject: Re: [PostgreSQL-Brasil] Performance SCSI > > > Olá... Tente rodar um REINDEX. > > > 2006/9/23, Thiago Risso < [EMAIL PROTECTED]>: > > Boa noite Lista, > > A situação é a seguinte : > Tinhamos um servidor rodando postgres em um PC P4 com HD IDE com 1GB de RAM > ... > Migramos este SERVIDOR PARA UM DELL POWER EDGE XEON com HD SCSI 10k e 3GB de > RAM > (800Mhz) ... > Ambos radando em LINUX REISERFS , porém o antigo em DEBIAN e o NOVO EM FEDORA > 5 (64 > bits) ... > > Teo,ricamente, as consultas deveriam ficar bem mais rápidas mas teoricamente, > não é isso > que esta acontecendo .... > Abaixo segue as configurações e testes realizados .... > > SERVER ANTIGO : > > shared_buffers = 2048 # min 16 or max_connections*2, 8KB each > temp_buffers = 2048 # min 100, 8KB each > work_mem = 2048 # min 64, size in KB > #max_fsm_pages = 20000 > #effective_cache_size = 1000 # typically 8KB each > #random_page_cost = 4 # units are one sequential page fetch > #fsync = on > #enable_bitmapscan = on > > > gerenciador=# ANALYZE ; > ANALYZE > Time: 5919,603 ms > gerenciador=# SELECT H.hierarquia,F.funcao,count(id_cand) AS quant FROM > ((area_cand AC > INNER JOIN teste_agencia.hierarquia H ON H.id_hierarquia = AC.id_hierarquia) > INNER JOIN > agencia.FUNCAO F ON F.id_funcao = AC.id_funcao)INNER JOIN > agencia.candidato_empresa CE > ON CE.id_candidato = AC.id_cand WHERE id_empresa = 1 AND F.id_funcao NOT > IN(SELECT > id_funcao FROM agencia.funcao_emp WHERE id_empresa = 1) GROUP BY > H.hierarquia,F.funcao > ORDER BY quant DESC LIMIT 10; > hierarquia | funcao | quant > --------------+----------------+------- > Auxiliar | Administrativo | 1408 > Assistente | Administrativo | 1327 > Operador | Produção | 833 > Profissional | Engenharia | 714 > Estágio | Engenharia | 563 > Estágio | Administrativo | 507 > Profissional | Recepcionista | 490 > Profissional | Montador | 347 > Auxiliar | Vendas | 330 > Profissional | Vendas | 305 > (10 rows) > > Time: 157,624 ms > > gerenciador=# EXPLAIN SELECT H.hierarquia,F.funcao,count(id_cand) AS quant > FROM > ((area_cand AC INNER JOIN teste_agencia.hierarquia H ON H.id_hierarquia = > AC.id_hierarquia) INNER JOIN agencia.FUNCAO F ON F.id_funcao = > AC.id_funcao)INNER JOIN > agencia.candidato_empresa CE ON CE.id_candidato = AC.id_cand WHERE id_empresa > = 1 AND > F.id_funcao NOT IN(SELECT id_funcao FROM agencia.funcao_emp WHERE id_empresa > = 1) GROUP > BY H.hierarquia,F.funcao ORDER BY quant DESC LIMIT 10; > QUERY PLAN > -------------------------------------------------------------------------------------------------------------------------------------------------- > Limit ( cost=22473.89..22473.91 rows=10 width=32) > -> Sort (cost=22473.89..22478.25 rows=1747 width=32) > Sort Key: count(ac.id_cand) > -> HashAggregate (cost=22357.97..22379.80 rows=1747 width=32) > -> Hash Join (cost=1057.51..22336.70 rows=2835 width=32) > Hash Cond: ("outer".id_hierarquia = > "inner".id_hierarquia) > -> Hash Join (cost= 1056.36..22290.67 rows=3307 > width=24) > Hash Cond: ("outer".id_funcao = "inner".id_funcao) > -> Nested Loop (cost=1017.18..22185.24 rows=6636 > width=12) > -> Bitmap Heap Scan on candidato_empresa ce > (cost=1017.18..2364.09 rows=2793 width=4) > Recheck Cond: (id_empresa = 1) > -> Bitmap Index Scan on > candidato_empresa_index_candidato_empresa > (cost=0.00..1017.18 rows=2793 width=0) > Index Cond: (id_empresa = 1) > -> Index Scan using index_area_cand on > area_cand ac > (cost=0.00..7.07 rows=2 width=12) > Index Cond: ("outer".id_candidato = > ac.id_cand ) > -> Hash (cost=38.81..38.81 rows=146 width=20) > -> Seq Scan on funcao f (cost=32.15..38.81 > rows=146 > width=20) > Filter: (NOT (hashed subplan)) > SubPlan > -> Seq Scan on funcao_emp > (cost=0.00..32.12 > rows=9 width=4) > Filter: (id_empresa = 1) > -> Hash (cost=1.12..1.12 rows=12 width=16) > -> Seq Scan on hierarquia h (cost=0.00..1.12 > rows=12 > width=16) > (23 rows) > > SERVER NOVO : > > shared_buffers = 3072 > work_mem = 4096 > maintenance_work_mem = 32768 > max_fsm_pages = 120000 > wal_buffers = 32 > effective_cache_size = 131072 > random_page_cost = 1 > #fsync = on > #enable_bitmapscan = on > > gerenciador=# ANALYZE ; > ANALYZE > Time: 8902,698 ms > gerenciador=# SELECT H.hierarquia ,F.funcao,count(id_cand) AS quant FROM > ((area_cand AC > INNER JOIN teste_agencia.hierarquia H ON H.id_hierarquia = AC.id_hierarquia) > INNER JOIN > agencia.FUNCAO F ON F.id_funcao = AC.id_funcao)INNER JOIN > agencia.candidato_empresa CE > ON CE.id_candidato = AC.id_cand WHERE id_empresa = 1 AND F.id_funcao NOT > IN(SELECT > id_funcao FROM agencia.funcao_emp WHERE id_empresa = 1) GROUP BY > H.hierarquia,F.funcao > ORDER BY quant DESC LIMIT 10; > hierarquia | funcao | quant > --------------+----------------+------- > Auxiliar | Administrativo | 1408 > Assistente | Administrativo | 1327 > Operador | Produção | 833 > Profissional | Engenharia | 714 > Estágio | Engenharia | 563 > Estágio | Administrativo | 507 > Profissional | Recepcionista | 490 > Profissional | Montador | 347 > Auxiliar | Vendas | 330 > Profissional | Vendas | 305 > (10 rows) > > Time: 374,312 ms > > gerenciador=# EXPLAIN SELECT H.hierarquia,F.funcao,count(id_cand) AS quant > FROM > ((area_cand AC INNER JOIN teste_agencia.hierarquia H ON H.id_hierarquia = > AC.id_hierarquia) INNER JOIN agencia.FUNCAO F ON F.id_funcao = > AC.id_funcao)INNER JOIN > agencia.candidato_empresa CE ON CE.id_candidato = AC.id_cand WHERE id_empresa > = 1 AND > F.id_funcao NOT IN(SELECT id_funcao FROM agencia.funcao_emp WHERE id_empresa > = 1) GROUP > BY H.hierarquia,F.funcao ORDER BY quant DESC LIMIT 10; > > QUERY PLAN > ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- > Limit (cost= 10725.34..10725.36 rows=10 width=32) > -> Sort (cost=10725.34..10729.70 rows=1747 width=32) > Sort Key: count(ac.id_cand) > -> HashAggregate (cost=10609.42..10631.25 rows=1747 width=32) > -> Hash Join (cost=2165.25..10582.15 rows=3636 width=32) > Hash Cond: ("outer".id_hierarquia = > "inner".id_hierarquia) > -> Hash Join (cost= 2164.10..10524.94 rows=3939 > width=24) > Hash Cond: ("outer".id_funcao = "inner".id_funcao) > -> Merge Join (cost=2124.93..10406.86 rows=7904 > width=12) > Merge Cond: ("outer".id_cand = > "inner".id_candidato) > -> Index Scan using index_area_cand on > area_cand ac > (cost=0.00..7428.58 rows=294416 width=12) > -> Sort (cost=2124.93..2133.24 rows=3326 > width=4) > Sort Key: ce.id_candidato > -> Index Scan using > candidato_empresa_index_candidato_empresa on > candidato_empresa ce (cost=0.00..1930.36 > rows=3326 width=4) > Index Cond: (id_empresa = 1) > -> Hash (cost=38.81..38.81 rows=146 width=20) > -> Seq Scan on funcao f (cost=32.15..38.81 > rows=146 > width=20) > Filter: (NOT (hashed subplan)) > SubPlan > -> Seq Scan on funcao_emp > (cost=0.00..32.12 > rows=9 width=4) > Filter: (id_empresa = 1) > -> Hash (cost=1.12..1.12 rows=12 width=16) > -> Seq Scan on hierarquia h (cost=0.00..1.12 > rows=12 > width=16) > (23 rows) > > ** NOS DOIS SERVERS FOI EXECUTADO VACCUM E ANALYZE ANTES DO TESTE ... > > > Atenciosamente, > > Thiago Risso > Rhadar > > > > > _______________________________________________ > Grupo de Usuários do PostgreSQL no Brasil > Antes de perguntar consulte o manual > http://pgdocptbr.sourceforge.net/ > > Para editar suas opções ou sair da lista acesse a página da lista em: > http://pgfoundry.org/mailman/listinfo/brasil-usuarios > <http://pgfoundry.org/mailman/listinfo/brasil-usuarios> > > > > > > > _____ > > > > _______________________________________________ > > > > > _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/ Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios
