2011-09-07 15 views
7

Me actualicé a Lion hace unas semanas, y Ruby lo enloqueció por completo en el entorno de Rails. Tengo la instalación de RVM, diferentes versiones de ruby ​​y parece que no puedo encontrar una solución para eso ... Creo que fue una de las peores decisiones que pude hacer al actualizar a Lion. Solo me trajo problemas.Fuga de memoria en el proceso de ruby ​​después de actualizar a OSX Lion

De todos modos, me he dado cuenta que renderizar una página de mi aplicación (que funciona perfectamente en el servidor desplegado y localmente en otras máquinas) aumenta la memoria de proceso de ruby ​​en 20-30mb lo cual es una locura. Entonces, pueden imaginarse que después de un tiempo, mi proceso de rubí alcanza los 2 gb de memoria en uso y mi computadora ya no se puede usar.

He visto a muchas personas con problemas para actualizar a Lion, pero no he podido encontrar una solución para mi caso.

¿Alguno tuvo el mismo problema? ¿Alguna idea de cómo podría tratar de resolver este problema?

Gracias

+0

quizás pruebe valgrind? – rogerdpack

+0

Tiene el mismo problema. Pol, encontraste una solución? –

+0

Tengo el mismo problema y estoy buscando una solución. –

Respuesta

0

Se podría utilizar la gema memprof (Ya no es mantenido y no funciona para Ruby anterior versión 1.8.7) y memprof.com (enlace roto) para llegar al fondo de la cuestión .

También podría experimentar con el uso de Passenger, Unicorn o Thin en lugar del Webrick predeterminado para ver si eso le da un comportamiento diferente.

0

No sé cómo podría solucionar la pérdida de memoria, pero puede proponer una forma de contenerlo y solucionarlo aún más.

Si está dispuesto a aprender Docker, puede incluir su entorno de desarrollo dentro de un contenedor Docker, mientras accede al código en su máquina local, como una carpeta compartida en Vagrant.

Cuando ejecuta el contenedor Docker que se ejecuta, puede especificar un límite en la cantidad de memoria que ese contenedor puede usar. Su proceso rails server puede bloquearse y detener el contenedor, pero al menos no tendrá que reiniciar su máquina.

Tal vez eso le dará más margen de maniobra para solucionar el problema con mayor profundidad.

Docker Run Reference, consulte la sección "Restricciones de tiempo de ejecución en la CPU y la memoria".

Cuestiones relacionadas