El 29/12/2010 17:50, Alvaro Herrera escribió:
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.

Alvaro, Gracias por tu respuesta. La versión del servidor es 8.2.7, he revisado información de San Gregory Smith en la web y alli es donde me indicaba estos detalles de shared_buffers chicos para grandes cargas. Voy a tratar de comprar el libro que me indicas, por suerte tengo un tio Sacerdote :-).

Gracias por tu ayuda y feliz año a toda la comunidad!




-
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