Depurar conexiones en postgresql

Para esos casos en que algún cliente empieza a dar problemas por un asunto de conexiones se pueden usar los recursos aquí listados.

Postgresql por defecto tiene un límite de 100 conexiones de usuario que se reparten entre todos los que se conecten. Si este límite se excede las nuevas conexiones son rechazadas y para modificar esta configuración es necesario editar el archivo postgresql.conf, buscar por max_connections y reiniciar.

Sin embargo antes de llegar a estos extremos será necesario asegurarse de que este sea el problema. Una forma de determinarlo es ejecutando esta consulta:

select
    datname,
    usename,
    application_name,
    client_addr,
    backend_start,
    xact_start,
    query_start,
    state_change,
    state
from pg_stat_activity
where wait_event_type = 'Client';

Si el resultado no son las 100 conexiones esperadas entonces seguir el proceso antes descrito no va a solucionar nada. En este punto es necesario asomarse a la configuración de pooling del cliente que está dando problemas y quizá ajustar sus parámetros. Se puede averiguar más acerca del significado de cada columna en la documentación de postgresql.

Un problema común es que el límite de conexiones concurrentes del cliente esté establecido demasiado bajo para la cantidad de consultas que ejecuta al mismo tiempo.