lunes, 27 de abril de 2015

Error: Postgres sorry, too many clients already

Cuando tenemos este error en Postgres, casi con toda seguridad es porque hemos llegado al número máximo de conexiones configuradas en la base de datos.
Para comprobar el número máximo de conexiones abiertas que tenemos basta con lanzar la consulta siguiente:

select count(*) from pg_stat_activity;

El resultado que nos da es el número de conexiones que tenemos abiertas, en mi caso 122:

 count   
 --------
 122  

Con el fin de poder rastrear que aplicación es la que está necesitando más conexiones, modificamos la consulta anterior agrupando por usuarios:

select datname, count(*) from pg_stat_activity group by datname;

El resultado que nos da nos indica que la aplicación "sgtcore" tiene 121 conexiones abiertas y "schedul" tiene una:

 datname          count   
 ---------------          --------
 sgtcore             121      
 schedul             1      

Ahora, para ver cuantas conexiones máximas tenemos configuradas en la base de datos, lanzamos lo siguiente:

SHOW max_connections;

El resultado que da es que la base de datos tienen configuradas un máximo de 122 conexiones simultaneas:

 max_connections   
 ------------------
 122      


Por esto en el momento que una aplicación quiera abrir una conexión más postgres dará el error: postgres sorry, too many clients already.


Para solucionar esto debemos modificar la propiedad max_connections en el archivo postgresql.conf quedando en mi caso de la siguiente manera:

max_connections = 350

No hay comentarios:

Publicar un comentario