RE: Configurar Postgresql 8.1

From: "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar>
To: "'BeMoN!o'" <bemonio(at)gmail(dot)com>, "'pgsql-es-ayuda'" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Configurar Postgresql 8.1
Date: 2009-03-16 19:40:44
Message-ID: DF5B0143BCEC4D01BFE284A5501EE9F2@iptel.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> -----Mensaje original-----
> De: BeMoN!o
>
> Me gustaría obtener ayuda y documentación sobre la
> configuración "Tunning" del Postgresql para la versión 8.1.
> ya que he jugado con algunos de los valores y ha mejorado su
> desempeño, pero aun considero que por falta de conocimientos
> no es lo óptimo (si la documentación es en español mejor).
>
> características:
> Linux - Debian kernel 2.6.18.
> 2 procesadores Dual Core 3.4, 4GB, 1.5Gb de Swap.
>
> max_connections = 200
> shared_buffers = 131072 #representa el 25% de la RAM
> work_mem = 167772 #representa 4% RAM
>

Pareciera tenés un error en la interpretación de shared buffers. El valor
asignado no se corresponde con el porcentaje de memoria que aduces. Dado que
el servidor es dedicado, shared_buffers puedes incrementarlo tranquilamente
a 1GB (1048576).

Revisa work_mem porque lo tienes en 167 MB. No es que esté mal, pero es un
valor atípicamente alto y si tienes muchas conexiones paralelas es probable
te esté consumiendo toda la memoria (fácil de corroborar con vmstat).
Dependiendo del tipo de consultas que se ejecuten y la cantidad de
conexiones simultáneas sugeriría jueges con valores más razonables para
work-mem, entre 1024 y 16384 (KB). Ten presente que reducir work_mem puede
hacer más lentas consultas que requieran varios sorts, hashs o merge joins
con muchos registros.

Las recomendaciones en líneas generales suelen ser las siguientes:

1. Identifica los cuellos de botella antes de actuar (Monitorear el sistema
c/ vmstat, queries lentos con log_min_duration_statement)
2. Asegura que autovacuum este corriendo o vacuum croneado regularmente.
3. Haz un tunning de los queries más problemáticos
4. Habilita un pool de conexiones (pgpool2, pgbouncer)
5. Planifica el upgrade a una versión más reciente. 8.4 está en puerta. Las
nuevas versiones dan un salto importante en performance sobre 8.1.
6. Mejora el hardware. Los principales items donde mirar son:
- Agregar discos y migrar a RAID 10.
- Agregar una controladora con BBU caché
- Agregar más memoria.

Saludos,
Fernando.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Marcos Ortiz Valmaseda 2009-03-16 20:40:41 Re: Configurar Postgresql 8.1
Previous Message Alvaro Herrera 2009-03-16 16:49:42 Re: Hola