2011-12-29 11 views
7

No encuentro ningún documento que describa el efecto de agrupación de conexión de base de datos para unicorn.¿Realmente necesita un grupo de conexiones db para unicornios?

Unicorn teje varios procesos de trabajo. Configuré prefork y es fundamental no compartir las conexiones de la base de datos entre los trabajadores, así que reinicié las conexiones de db después del tenedor.

Mi aplicación de rieles tiene 8 trabajadores por servidor, y el tamaño de la agrupación en database.yml es 5, luego vi 45 conexiones a mysql.

Cada trabajador tiene un solo hilo que maneja 1 solicitud a la vez. Las consultas SQL deberían estar bloqueando. Parece que las otras 4 conexiones son inútiles? ¿Puedo establecer el tamaño del grupo en 1 para un mejor rendimiento?

Respuesta

7

Dado que cada trabajador solo puede atender 1 solicitud a la vez, cada trabajador también puede usar solo una conexión a la vez, y no se gana nada al tener más conexiones. Si establece el tamaño del grupo en 1, cada trabajador Unicornio debe abrir una conexión. Es probable que no obtenga un aumento notable en el rendimiento, pero ahorrará recursos al tener menos conexiones abiertas.

Cuestiones relacionadas