Para fazer os testes va alterando o arquivo /proc/sys/kernel/shmmax [1]...
Após encontrar o valor correto para a shared memory, edite o arquivo : /etc/sysctl.conf e coloque uma linha como essa, caso não exista kernel.shmmax=134217728 [1] http://developer.postgresql.org/pgdocs/postgres/kernel-resources.html Att: Thiago Risso On 11/10/06, Marcelo Angelo da Cunha Battistini < [EMAIL PROTECTED]> wrote:
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 <[EMAIL PROTECTED]> > *To:* Grupo de Usuários do PostgreSQL no Brasil<[email protected]> > *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.24rows=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.18rows=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.86rows=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.24rows=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 > > > > > ------------------------------ > > _______________________________________________ > 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 > > > _______________________________________________ > 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 > > _______________________________________________ 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
_______________________________________________ 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
