Hola Francisco,

El jue, 6 jun 2024 a las 14:04, Francisco Peña (<
franciscopenar1...@gmail.com>) escribió:

> Hola a tod@s,
>
> Estoy presentando un problema con el manejo de conexiones a nivel de
> pgpool, me está arrojando el siguiente error en el log de pgpool.
>
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
> [[No Connection]] LOG:  child exiting, 100 connections reached
>
> Adjunto configuración actual de los parámetros correspondientes al manejo
> de conexiones.
>
> process_management_mode = dynamic
> num_init_children = 900
> min_spare_children = 10
> max_spare_children = 20
> max_pool = 4
> #child_life_time = 3min
> child_max_connections = 100
> connection_life_time = 180
> client_idle_limit = 180
>
> En postgres tengo configurado el max_connections = 1000.
>
> Agradecería alguna sugerencia acerca de una mejora en la
> configuración para evitar este error de conexiones rechazadas.
>  Mencionar además, que actualmente no se han superado las 300 conexiones
> activas.
>
> Saludos.
>

Lo que te muestra no es un mensaje de error sino un mensaje de nivel LOG.
En este caso pgpool te está informando que uno de sus procesos hijo llegó
al límite establecido por child_max_connections y por eso está matando un
proceso hijo (child) de pgpool. Cuando esto ocurre, pgpool inicia
inmediatamente un nuevo proceso hijo. De acuerdo a la documentación, esto
es un mecanismo de pgpool "para prevenir fugas de memoria y otros errores
inesperados en los procesos hijo de pgpool".

La forma predeterminada de hacer esto es mediante un límite de tiempo
usando child_file_time, pero también se puede hacer como lo estás haciendo
con child_max_connections. El número configurado en este parámetro no es
"conexiones concurentes" sino más bien conexiones en total. Una vez que un
proceso hijo de pgpool ha servido 100 conexiones, cumple su ciclo de vida y
es terminado, dando paso a un nuevo proceso.

Personalmente no vería mal esta configuración, a menos que estés
experimentando algún tipo de inconveniente. Coméntanos si es así.

Saludos,


-- 
Carlos Chapi

Reply via email to