Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

max_connections significado exacto

Estas en el tema de max_connections significado exacto en el foro de Bases de Datos General en Foros del Web. Hola, Una duda quería hacer. Las conexiones máximas recurrentes se van acumulando porque en algún sitio de la web las conexiones con la BBDD no ...
  #1 (permalink)  
Antiguo 11/08/2010, 06:53
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
max_connections significado exacto

Hola,

Una duda quería hacer. Las conexiones máximas recurrentes se van acumulando porque en algún sitio de la web las conexiones con la BBDD no se cierran? Es por eso?

Ahora mismo el server me marca:

Número máx. de conexiones concurrentes 33

Pero va subiendo como de 4 en 4 y al cabo de las 24 horas llega a las 101 y es cuando el servidor dice basta.

¿Es por eso? ¿Porque en alguna parte del código no cierro las conexiones?

Gracias!
  #2 (permalink)  
Antiguo 11/08/2010, 07:03
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: max_connections significado exacto

Es por lo que dices, o por que realmente están mas de 100 usuarios conectados simultaneamente y el servidor no dispone de memoria adicional para asignar a este recurso.

En tu aplicación normalmente cierras las conexiones cada que terminas de usarlas?

Este valor puede ser incrementado pero debes documentarte bien de que ventajas y desventajas conlleva su aumento.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 11/08/2010, 07:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: max_connections significado exacto

Cita:
Una duda quería hacer. Las conexiones máximas recurrentes se van acumulando porque en algún sitio de la web las conexiones con la BBDD no se cierran? Es por eso?
Se acumulan cuando no se las cierra, o cuando cada ejecución de consulta crea una.
Esto afecta la capacidad de la PC de crear nuevas conexiones al saturarse el spooller de conexiones del sistema, pero no tiene relación directa con la capacidad de MySQL de aceptar conexiones.

En cuanto al conexiones concurrentes, lo que puedes configurar en el servidor de MySQL, son independientes del spooler del sistema y se refiere a la cantidad de usuarios que simultáneamente pueden estar logueados en una misma instancia de MySQL.

Para que se entienda bien el caso: el spooler de conexiones del sistema puede tener una cota de 100, pero si a MySQL le das un max_conenctions de 10, solamente podrás tener 10 usuarios trabajando en la base al mismo tiempo (ten en cuenta que una conexión a MySQL es un usuario, aunque ese usuario sea el mismo en todos los casos al duplicarse conexiones del mismo). Esto implica que puedes saturar las conexiones de MySQL sin saturar el spooler.

El problema que se da a nivel de sistema es que el spooler no se libera tán rápidamente, por lo que cuando cierras una conexión en PHP o lo que sea, pueden tardar varios minutos en liberarse los recursos. En ese caso se puede saturar el spooler, pero tener sólo muna conexión en MySQL...
¿Cuál es la solución?
Simple: Usa una sola conexión por máquina y por sesion, y no abras y cierres conexiones a la base de datos para cada consulta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 11/08/2010, 11:17
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: max_connections significado exacto

Muchas gracias por las respuestas, sigo intentando mejorar el código, porque en principio sí que se cierran las conexiones, por lo menos programado para ello está.

Lo que pasa que es un sistema que cada 5 minutos se autoejecutan múltiples php que deben conectar con la bbdd (recojo de +40 xml varios datos para un comparador), aunque las conexiones duran pocos segundos, en los casos que más 15 o 20, me satura el servidor al cabo de unas horas.

Llevo ya tiempo itentando solucionarlo esto, depurando al máximo el código, pero aún me sigue dando problemas, aunque menos, pero llega un punto en que claro, no sé bien cómo solucionarlo.

Otra pregunta. Pongamos que las conexiones recurrentes llegan a 48, o a 90, la cifra que sea. ¿Ésta, una vez se ha llegado a ese punto, no se reduce nunca no? Es decir, las conexiones recurrentes pueden ir subiendo, pero nunca bajando?

Muchas gracias.
  #5 (permalink)  
Antiguo 11/08/2010, 11:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: max_connections significado exacto

Cita:
Otra pregunta. Pongamos que las conexiones recurrentes llegan a 48, o a 90, la cifra que sea. ¿Ésta, una vez se ha llegado a ese punto, no se reduce nunca no? Es decir, las conexiones recurrentes pueden ir subiendo, pero nunca bajando?
Todo depende de cuánto tiempo tarda el sistema en liberar el spooler de conexiones.
Windows, por caso, se toma a veces varios minutos en liberar una conexión en el spooler. Pero en el caso de Windows y .Net, por ejemplo, el problema se puede administrar impidiendo que la conexión se declare en el spooler (cosa que se maneja en el string de conexión).
Habría que ver en tu caso.
Una opción sería que la descarga a la base, en lugar de hacerse en tiempos aleatorios, pudiese ser programada de modo que acumules los datos de las diferentes fuentes en un punto y luego cargues en un sólo proceso de conexión todos los datos cada X tiempo determinable.
¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 11/08/2010, 13:12
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: max_connections significado exacto

Hola,

Sí, de hecho algo así hago con cada uno de los parsers, los congelo en 1 sitio, son tratados, y entonces lo meto todo en la bbdd.

Me interesa mucho esto que me has comentado: Pero en el caso de Windows y .Net, por ejemplo, el problema se puede administrar impidiendo que la conexión se declare en el spooler (cosa que se maneja en el string de conexión).

He tratado de buscar referencias por aquí y Google pero no hago la búsqueda correcta. ¿Me podrías indicar algún documento o manual en el que poder instruirme en ello? La verdad ando pez en eso, y si crees que se podría evitar, me gustaría poder verlo a ver, porque puede ser una buena solución.

Gracias otra vez!
  #7 (permalink)  
Antiguo 12/08/2010, 07:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: max_connections significado exacto

Cita:
Me interesa mucho esto que me has comentado: Pero en el caso de Windows y .Net, por ejemplo, el problema se puede administrar impidiendo que la conexión se declare en el spooler (cosa que se maneja en el string de conexión).
Para evitar que las conexiones entren en el pool, en el caso de .Net y MySQL, hay que usar
Cita:
Pooling=false;
Respecto al tema de cómo funciona el spool de conexiones, hay bastante documentación, la mayor parte en inglés:

http://www.netveloper.com/2004/12/co...ing-en-adonet/
http://www.unixodbc.org/doc/conn_pool.html
http://blogs.msdn.com/b/warnov/archi...e-ado-net.aspx
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: max_connections, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:44.