Skip site navigation (1) Skip section navigation (2)

Performance y tunning postgres

From: "Patricio Cifuentes Ithal" <pcifuentes(at)siigsa(dot)cl>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Performance y tunning postgres
Date: 2007-06-28 13:50:57
Message-ID: 001e01c7b98b$5b1f5040$115df0c0$@cl (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Hola lista,

Tengo un pequeño problema con el tunning que tengo en dos maquinas con
postgres, los detalles son los siguientes

 

Servidor 1:

1 procesador Amd 64 3000

2 GB ram

160 GB DD

Redhat 4 Update 2

Postgre 7.4.8

 

La configuracion del postgres es la siguiente

checkpoint_segments            | 9

 checkpoint_timeout             | 300

 checkpoint_warning             | 30

cpu_index_tuple_cost           | 0.001

 cpu_operator_cost              | 0.0025

 cpu_tuple_cost                 | 0.01

effective_cache_size           | 1000

 enable_hashagg                 | on

 enable_hashjoin                | on

 enable_indexscan               | on

 enable_mergejoin               | on

 enable_nestloop                | on

 enable_seqscan                 | off

 enable_sort                    | on

 enable_tidscan                 | on

max_connections                | 300

 max_expr_depth                 | 10000

 max_files_per_process          | 1000

 max_fsm_pages                  | 20000

 max_fsm_relations              | 1000

 max_locks_per_transaction      | 64

shared_buffers                 | 52428

 silent_mode                    | off

 sort_mem                       | 167772

vacuum_mem                     | 8192

 virtual_host                   | unset

 wal_buffers                    | 32

 

 

Servidor 2:

2 procesadores core 2 duo

4 GB ram

900 GB DD

RedHat 4 Update 2

Postgres 7.4.8

 

La configuracion del postgres es la siguiente

checkpoint_segments            | 9

 checkpoint_timeout             | 300

 checkpoint_warning             | 30

cpu_index_tuple_cost           | 0.1

 cpu_operator_cost              | 0.5

 cpu_tuple_cost                 | 0.1

effective_cache_size           | 1000

 enable_hashagg                 | on

 enable_hashjoin                | on

 enable_indexscan               | on

 enable_mergejoin               | on

 enable_nestloop                | on

 enable_seqscan                 | off

 enable_sort                    | on

 enable_tidscan                 | on

max_connections                | 300

 max_expr_depth                 | 10000

 max_files_per_process          | 1000

 max_fsm_pages                  | 20000

 max_fsm_relations              | 1000

 max_locks_per_transaction      | 64

shared_buffers                 | 256000

 silent_mode                    | off

 sort_mem                       | 321772

vacuum_mem                     | 8192

 virtual_host                   | unset

 wal_buffers                    | 32

 

 

a esta maquina segunda maquina le aunmente las cifras de los cpu cost, y el
share_buffer a 256.000 todo calculado según tunning de manual para darle el
40% de la memoria ram en el primero lo mismo pero solo un 20%.

al servidor 2 le realice un pgbench y hace alrededor de tps 1000 a 1200 pero
si bajo el share_buffer a 1000 osea a lo minimo q trae postgres por defecto,
el pgbench disminuye a 800, lei por ahí q entre mas memoria tenga el
share_buffer mas lento hace las consultas hice los mismo en el primer
servidor, obviamente como es menos maquina hace el doble de tps osea 2000,
pero mi segundo servidor es 4 veces mas potente debiera ser entonces 4 veces
mas rápido o no necesariamente?. En el primer servidor el pgbench es de tps
2000 y elsegundo 1000 con mas memoria y 800 con mas memoria eso es algo q no
entiendo, en todo caso por lo q lei en otros foros, no ando ni por las
tapas, ya q algunos incluso con menos maquina han llegado hasta tps 450 y yo
con un maquina mas poderosa estoy bordeando los tps 1000, que es lo q esta
mal?, tengo claro q quizá la versión de postgres esta bastante
desactualizada, pero por un tema estratégico aun no lo puedo cambiar  a
versiones nuevas, como puedo hacer un mejor tunning para tener mejor
perfonmance, todo se realizo con pgbench, es esta una herramienta
confiable?, ya q esta realiza los checkpoint y vacumm necesarios antes d
erealizar el bench.

Esta bien q haya subido los cost de los cpu?:

 

cpu_index_tuple_cost           | 0.1

 cpu_operator_cost              | 0.5

 cpu_tuple_cost                 | 0.1

 

lei también que también poniendo –F en el postmaster el postgres se inicia
sin un log de transacciones(o algo por el estilo) y la velocidad aunmenta
considerablemente, lo hice pero segui con los mismo resultados, asi q lo
deje como estaba anteriormnete. 

 

Mi consulta es: necesito mejorar el perfomance d emi segunda maquina, como
lo hago, que otras cosas puedo mejorar, donde mas hay q  meter mano?, pienso
q realmente el postgres no esta sacando real provecho a la maquina.

 

Gracias.

 

Patricio Cifuentes Ithal

Ingeniero en Informatica


-- 
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.

www.siigsa.cl

Responses

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2007-06-28 14:05:22
Subject: Re: Performance y tunning postgres
Previous:From: Alvaro HerreraDate: 2007-06-28 13:45:39
Subject: Re: Tablas Temporales!

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group