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

Super gasto de RAM mysql

Estas en el tema de Super gasto de RAM mysql en el foro de Mysql en Foros del Web. Hola querida comunidad! Tengo un problema que me está dando la vara y no logro solucionar sobre el consumo de RAM. Resulta que he creado ...
  #1 (permalink)  
Antiguo 03/06/2011, 05:46
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Super gasto de RAM mysql

Hola querida comunidad!

Tengo un problema que me está dando la vara y no logro solucionar sobre el consumo de RAM.

Resulta que he creado un bot que trabaja a través de ajax (por el momento, luego lo implementare en c) comprobando contenidos de mi bbdd mysql. Para ser exactos hace como 3 consultas por segundo.

Esto bot, como esta escrito en ajax, lo ejecuto con firefox, no da problemas, no pasa nada... Hasta que lleva un largo periodo de tiempo, me ha pasado en 16 horas de consumir 240mb a 1.5gb de ram, lo cual viene siendo un problema muy gordo.

¿Alguien sabría decirme por qué ocurre esto? Me caben dos posibilidades:

- El servidor (que sinceramente no creo que sea esto ya que si fuera se mantendría estable, en el valor que fuera)
- El número de conexiones con la bbdd (lo cual veo más fiable)

Si es esta última, ¿Podría solucionarlo con algún método de sql? ¿Tal vez con mysql_free_result o con mysql_close?


Gracias y un saludo
  #2 (permalink)  
Antiguo 03/06/2011, 06:36
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, 4 meses
Puntos: 2658
Respuesta: Super gasto de RAM mysql

Cita:
Para ser exactos hace como 3 consultas por segundo.
Depende mucho de cómo está implementado el desarrollo de las consultas, pero hacer un sistema que haga 10.800 consultas/hora... a mi entender no sólo no es práctico, sino que recargaría inmensamente al servidor y a los recursos de hosting. Me parece que te pueden llegar a cancelar el servicio de hosting por exceso de uso...

Creo que deberías replantear la idea para que sea más eficiente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 03/06/2011, 06:38
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Super gasto de RAM mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Depende mucho de cómo está implementado el desarrollo de las consultas, pero hacer un sistema que haga 10.800 consultas/hora... a mi entender no sólo no es práctico, sino que recargaría inmensamente al servidor y a los recursos de hosting.

Creo que deberías replantear la idea para que sea más eficiente.
Pero no deja de ser un bot indexador de contenidos y tiene que soportar ese nivel, alguna solución para este tipo de casos? Y si las consultas no guardan cache? podría funcionar?
  #4 (permalink)  
Antiguo 03/06/2011, 06:51
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, 4 meses
Puntos: 2658
Respuesta: Super gasto de RAM mysql

Pregunta: ¿Qué es exactamente lo que haces con esas tres consultas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 03/06/2011, 06:55
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Super gasto de RAM mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Pregunta: ¿Qué es exactamente lo que haces con esas tres consultas?
Comprueba si hay actualizaciones, de la id correspondiente, mira cual es la siguiente id para pasarla al ajax y ajax con esta nueva id manda al php, comprueba esta nueva id y repite el ciclo.

Entre medias hace una consulta que guarda nuevas actualizaciones en esas ids por las que pasa (esto lo hace bajo condiciones, es decir no lo hace siempre).
  #6 (permalink)  
Antiguo 03/06/2011, 07:03
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, 4 meses
Puntos: 2658
Respuesta: Super gasto de RAM mysql

Por lo que entiendo quieres presentar la información en tiempo real. Si esa es la idea no me parece muy práctico hacerlo una vez por segundo.
¿No sería más práctico y liviano para el sistema hacer ese refresco cada 60 segundos o incluso cada cinco minutos?
¿Tan rápido cambia la información en esa base de datos que necesitas un sistema así?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 03/06/2011, 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: Super gasto de RAM mysql

Cierras las conexiones cada vez que las abres?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #8 (permalink)  
Antiguo 03/06/2011, 08:01
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Super gasto de RAM mysql

Hago un mysql free, debería hacer tambien el close? Estos metodos, a parte de para select, valen para insert, update y delete?

Y por último, debería decirle a mysql que no guarde cache? es que creo que el problema real va a estar ahí.

Sí, debe pasar con esa frecuencia, la base de datos tiene miles de contenidos

Y sí, podría pillarme un servidor mejor, pero aún así tendría que optimizar todo esto para que funcionara en condiciones, de todas formas, no depende de esto, ya que no gasta mucho, sino que sube. Por tanto el problema esta en mi optimización del código.

Gracias por vuestras respuestas.
  #9 (permalink)  
Antiguo 03/06/2011, 10:53
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Super gasto de RAM mysql

A ver, para los robots no hace falta que lo ejecutes por ajax, el script puedes ejecutarlo del tiron, poniendo en el php.ini los max times hasta los topes, para que nunca pare, en plan 9999999.

El script tiene que liberar bien la memoria, me refiero a que en un while tienes que eliminar variables, parece una tonteria pero en un while si no usas unsets para eliminar se va sobrecargando y a las horas o dias eso se nota.

Yo te recomiendo usar para los robots de scrapping esto http://simplehtmldom.sourceforge.net
Ahi te explican en la api que existe el metodo clear, que lo que hace es usar unset vamos.

Este script viene bien para ir recorriendo todo de forma facil, y acuerdate, haz unset d todo lo que no vallas a usar en la siguiente vuelta del while, y no deberias tener ningun problema de correr el script del tiron incluso en localhost y luego subes la base de datos al server...

Tengo mucha experiencia en scrappings jejeje.
  #10 (permalink)  
Antiguo 03/06/2011, 11:41
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Super gasto de RAM mysql

Muchas gracias, probando... ;)

Etiquetas: ram, super
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 19:22.