Alvaro muchas gracias por tus aclaraciones, simpre bienvenidas, sobre los 
checkpoints me quedan algunas dudas, y si puedes ayudarme a aclarar otras 
lagunas sería mucho mejor:

1. Cuando wal_buffers se llena también ocurre un checkpoint, o solamente ocurre 
durante checkpoint_segmentes o checkpoint_timeout?

2. Cuando se realiza una operación que afecta los datafiles, este cambio es 
almacenado en wal_buffers y en shared_buffers, pero solamente es sincronizado a 
disco cuando ocurre un checkpoint o durante wal_writer_delay que llevaría las 
páginas sucias del wal_buffers a los ficheros de wal y bgwriter_delay que 
llevaría las páginas sucias de shared_buffers a los datafiles de la db. Si esto 
es así, entonces durante un checkpoint, sería mucha la información que debería 
alterar los datafiles debido a la continua ejecución del proceso background 
writer?

3. Tanto el proceso wal writer como background writer, después de ejecutados 
limpian las páginas sucias de wal_buffers y de shared_buffers que fueron 
sincronizadas?

4. Podría darse el caso de que después de ocurrir un checkpoint, tras una caida 
del servidor, cuando este inicie y trate de entrar en modo de recuperación, 
podria ser que la información que esté almacenada en los ficheros wal ya esté 
en la db producto de que el proceso de background writer fue ejecutado?. En 
caso de ser posible, que hace el gestor al respecto.

Saludos y muchas gracias por tu ayuda.


________________________________________
From: Alvaro Herrera [alvhe...@alvh.no-ip.org]
Sent: Saturday, July 07, 2012 3:13 PM
To: Lazáro Rubén García Martínez
Cc: Jose Mercedes Venegas Acevedo; Ayuda
Subject: RE: [pgsql-es-ayuda] configuración postgres 9 vs postgres 8 problema 
con checkpoints y autovacuum

Excerpts from lgarciam's message of sáb jul 07 12:16:19 -0400 2012:

> checkpoint_segments establece el máximo número de segmentos de wal 
> (wal_buffers), que se pueden crear antes de que ocurra un check_point, lo que 
> significa que si tienes en la configuración que wal_buffers = 64 Kb y 
> checkpoint_segments = 5, solo pueden crearser 5 segmentos de 64 Kb y esta es 
> la razón por la cual ocurren muchos check_points lo que empeora el acceso a 
> disco, pues tendrían que realizarse muchas escrituras a disco contínuamente, 
> por eso mi recomendación es ir incrementando el valor de checkpoint_segments 
> hasta que no te aparezca más el HINT, o comenzar con un valor de 16.

Tienes una pequeña confusión.  Los segmentos de WAL no tienen nada que
ver con wal_buffers.  Un segmento de WAL es un archivo de 16 MB que se
guarda en el directorio pg_xlog.  Este tamaño no es configurable a menos
que recompiles Postgres.  wal_buffers solamente indica cuánto espacio
hay en RAM para guardar cosas que deben escribirse en algún segmento de
WAL.

Aparte de este detalle tu explicación es correcta: si tienes checkpoints
muy seguidos el rendimiento decae, por lo tanto hay incrementar tanto
checkpoint_segments como checkpoint_timeout.

> Sobre autocacuum, tenerlo en off, te puede disminuir el rendimiento de
> las consultas, pués, las tuplas muertas no son eliminadas, y cuando se
> recorren las tablas, es necesario revisar su visibilidad (visibility
> map), para saber que tupla debe formar parte del resultado.

Otra pequeña confusión.  El "visibility map" es un archivo muy pequeño
que tiene un bit para cada página de cada tabla.  Ese bit es 1 si todas
las tuplas son visibles para todos, es decir, si no hay ninguna tupla
muerta.  Es 0 si hay al menos una tupla visible.  Por lo tanto cuando
hay que "verificar la visibilidad de una tupla" no se usa el "visibility
map" (puesto que a menos que esté en 1 no tiene información suficiente)
sino la información de visibilidad que está junto con la tupla (xmin y
xmax).

--
Álvaro Herrera <alvhe...@alvh.no-ip.org>

Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE 
ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com

Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE 
ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a