Excerpts from Mario Sileone's message of mié dic 29 14:31:16 -0300 2010:
> Estimados, buenas tardes.
>      Estoy tratando de optimizar el WAL en una base de datos. De acuerdo 
> a la información que recopilé, seteando el checkpoint_segment en 1 me 
> realizaba una escritura cada aprox. 20 segundos (16 MB).
>      Noté que en estos casos caía por unos instantes la performance del 
> servidor, e inclusive veia algunos inserts y updates waiting, y el log 
> me avisaba que deberia incrementarlo.
>      Leyendo en la web sobre la optimización del WAL encontré que podria 
> ser mejor dejar shared_buffers mas bajo de lo óptimo para mi sistema, y 
> elevar el numero de checkpoint_segments como asi tambien el 
> checkpoint_timeout.

¿Qué versión del servidor?  checkpoint_segments=1 es un valor
ridículamente bajo.  Para tener rendimiento decente considera subirlo
como mínimo a unos 15 o 30.  Luego, estudia cómo mejorar el rendimiento
durante un checkpoint usando el parámetro checkpoint_completion_target,
y el comportamiento del bgwriter con bgwriter_lru_maxpages y
bgwriter_lru_multiplier.

Si tu versión del servidor no tiene esos parámetros, actualiza.

shared_buffers=2GB parece un valor bastante razonable.

max_connections=200 puede que sea excesivo.  Considera usar un pooler
encolante (pgbouncer).

Finalmente: consigue el libro de San Gregory Smith, haz que un cura te
lo sacramente como Biblia (o Torah o lo que indique tu religión), y te
aprendes los versículos que hablan de checkpoints.

-- 
Álvaro Herrera <[email protected]>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a