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
