PostgreSQL - Error límite de conexiones

 
Vista:
sin imagen de perfil

Error límite de conexiones

Publicado por victor (3 intervenciones) el 06/09/2017 16:47:49
Buenas estimados, realizando unas pruebas de postgres con moodle, me sucede el siguiente problema:
cuando llego alrededor de 500 conexiones, se bloquea el acceso a mi moodle en cierto momento.

Este es el log de error:


PHP Warning: pg_connect(): Unable to connect to PostgreSQL server:
FATAL: remaining connection slots are reserved for non-replication superuser connections in /var/www/html/moodle/lib/dml/pgsql_native_moodle_database.php on line 170


PHP Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: remaining connection slots are reserved for non-rep
lication superuser connections in
/var/www/html/moodle/lib/dml/pgsql_native_moodle_database.php on line 170, referer: http://(AquiVaMiIp)/moodle/course/view.php?id=2
PHP Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: sorry, too many clients already\nFATAL:
sorry, too many clients already in /var/www/html/moodle/lib/dml/pgsql_native_moodle_database.php on line 170, referer: http://(AquiVaMiIp)/moodle/login/index.php



Me gustaría saber porque tengo este problema y como podría solucionarlo.

Saludos Cordiales.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error límite de conexiones

Publicado por martin (121 intervenciones) el 06/09/2017 17:57:03
En el archivo postgresql.conf busca max_connection y aumenta la cantidad de conexiones, el problema radica en que cada conexion consume recursos del servidor y por tanto la cantidad de conexiones simultaneas debería esta sujeto a estos limites de hardware.

Por otro lado, me resulta extraño, parece que moodle no esta cerrando las conexiones o las mantiene abiertas por mucho tiempo, lo cual te genera este problema, en general uno como programador trata de abrir conexion, correr una query y cerrar la conexion, dejando libre una conexion para otro cliente.

A menos que lleguen las 500 conexiones al mismo tiempo, pero ya tendrias un trafico enorme para que se de eso.

Si tu problema radica en el limite del hardware disponble ya tendrias que plantearte implementare un cluster o pool.
https://wiki.postgresql.org/wiki/Pgpool-II

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Error límite de conexiones

Publicado por victor (3 intervenciones) el 06/09/2017 18:16:01
Ante todo agradecer por tu respuesta, me gustaría saber cual es la cantidad máxima que puedo colocar en la opción "max_connection" del archivo postgresql.conf
Y con respecto al máximo valor que se pueda colocar en "max_connection", ¿Cuál es su máximo requerimiento en hardware para esa cantidad de conexiones?


Con respecto al tráfico, creo que si tendré bastante tráfico, al parecer unas 2000 conexiones simultaneas, en este caso ¿Qué sería recomendable hacer para que mi moodle funcione bien con postgresql?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error límite de conexiones

Publicado por martin (121 intervenciones) el 07/09/2017 13:52:21
Según https://peaceloveandmoodle.wordpress.com/tag/max-connections/ moodle tiene el problemita que pense, mantiene conexiones persistentes con la base de datos(el ejemplo es con mysql) y eso hace que alcance el maximo de conexiones rapidamente, en ese post hay una configuración para sobrellevar este tema configurando un archivo de moodle, si las conexiones abren y cierran vas a tener un mejor balance de carga de conexiones, debería funcionar de forma mas fluida en relación a las conexiones.

Con respecto a los recursos por conexion tengo entendido que ronda los 10 MB, es decir lo que podrias manejar es (10 * Conexiones) = RAM, es decir Conexiones = RAM/10. de todos modos, tendrias que dejar algo de ram para otros procesos que se disparan en cada query.

Pero si logras resolver el problema de las conexiones permanentes no tendrias que estar tan ajustado, por que se liberian rapidamente las conexiones, si todo eso falla por que la demanda te supera ya te vas a clusters pools etc.

Conta tu experiencia despues.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Error límite de conexiones

Publicado por victor (3 intervenciones) el 07/09/2017 16:25:56
Leo el link : https://peaceloveandmoodle.wordpress.com/tag/max-connections/
pero no entendí nada, dice ciertas cosas pero no veo que brinde una solución, tema aparte me gustaría saber si puedo realizar un pool de conexiones en postgresql que trabaja con mi moodle, y que requerimientos toma este?
Me gustaría saber si este pool de conexiones trabaja de manera distribuida o como?
Espero puedan ayudarme, Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error límite de conexiones

Publicado por martin (121 intervenciones) el 08/09/2017 17:17:30
Aparentemente hayq ue editar el archivo mdl_config del moodle y poner:

$CFG->dboptions = array(
‘dbpersist’ => false
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar