> -----Mensaje original----- > De: Eddy Ernesto Baños Fernández > Hola a todos, tengo el siguiente problema: > > Estoy configurando un ambiente de producción para > PostgreSQL, sobre un entorno de réplica multimaestro usando > la herramienta Cybercluster 1.2.1. Cuento con 4 servidores HP > Proliant BL 460c G1 con 2x Quad Core @2.00 GHz 8Gb de RAM, > luego de alguna investigación acerca del tuning de servidores > PostgreSQL para producción, configuré el archivo > postgresql.conf de la siguiente manera: > > > > (resumo los parámetros en los cuales hice cambios) > > max_connections = 4000 # ulimit –n 4096 > > ... > > desde un portal el cual genera aproximadamente 70 consultas > por sesión 900 usuarios el sistema se literalmente explota, > es decir los tiempos de respuesta aumentan demasiado, es > decir la página demora en cargar aproximadamente 20 segundos. > > Necesito alguna sugerencia para optimizar el rendimiento. >
Todo indica que tendrías que levantar un servicio de pooling (pgbouncer o pgpool2) para limitar la cantidad de conexiones simultáneas a la base. Es muy probable que tu cuello de botella esté en los 900 backends simultáneos. Con pooling empieza a probar con max_connections = 100 y lo vas subiendo de a 50 hasta llegar a un rendimiento óptimo, el cual no debiera pasar los 400. Si a pesar del pooling sigues con grandes demoras tendrás que revisar las consultas sobre la base. Saludos. -- TIP 4: No hagas 'kill -9' a postmaster