Thiago, como se faz essa alteração no kernel?
-----Mensagem original-----Alterei minhas configuraçoes para :
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]Em 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
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 36620temp_buffers = 2048 # uso o default 1000
work_mem = 2048 # uso 64048
max_fsm_pages = 20000 # uso 320000
effective_cache_size = 1000 # uso 4096maintenence_work_mem=???? # uso 16384max_stack_deph=???? # uso 4096
random_page_cost = 4 # idem
fsync = on # idem
enable_bitmapscan = on # idemenable_seqscan = ?? # uso offenable_tidscan = ?? # uso offenable_hashagg = ?? # uso off
Espero que ajude,Sergio----- Original Message -----From: Cleber NardelliSent: Monday, September 25, 2006 3:59 PMSubject: Re: [PostgreSQL-Brasil] Performance SCSIOlá... 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
_______________________________________________
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
