Estoy usando Eclipse en Ubuntu 14.04 para temas científicos y mi código consume mucha RAM. Cuando ejecuto mi código en Eclipse, veo en System Monitor que el uso de RAM aumenta a casi el 100% y en los mismos momentos el sistema operativo deja de responder (por ejemplo, abrir una terminal tomará más de un minuto). ¿Hay alguna manera de limitar la cantidad de RAM utilizada por eclipse para que el sistema operativo siga respondiendo siempre?
¡Gracias!
Respuesta1
Cuando ejecuta una aplicación en eclipse, crea un hilo separado en el sistema operativo. Eclipse no puede controlar el uso de RAM de ese hilo.
Una forma de evitar que su sistema falle es aumentar el tamaño de la partición de intercambio. Incluso en este caso el sistema se vuelve muy lento pero no falla.
Hay otras formas de controlar el uso de RAM de una aplicación, por ejemplo, cerrar el programa cuando el uso supera un cierto valor. Si establece límites tan estrictos en el uso de la memoria, es posible que se produzca algún comportamiento/bloqueo impredecible. Consulte los enlaces a continuación que hablan sobre cómo limitar el uso de RAM.
https://unix.stackexchange.com/questions/44985/limit-memory-usage-for-a-single-linux-process
Recomendaría intentar optimizar su código para que use menos RAM o pensar en alguna forma de volcar los datos al disco duro y leerlos cuando sea necesario en lugar de retenerlos en la RAM. ¡Aún mejor es aumentar la RAM!
Respuesta2
Aquíes un script Perl para exactamente este problema.
INTRODUCCIÓN
El script de tiempo de espera es un programa de monitoreo de recursos para limitar el tiempo y el consumo de memoria de los procesos de caja negra en Linux. Ejecuta un comando que usted especifica en la línea de comando y vigila su consumo de memoria y tiempo, interrumpiendo el proceso si se sale de los límites y notificando al usuario con el mensaje preestablecido.
La característica principal de este script (y, de hecho, la razón por la que apareció) es que no sólo observa el proceso generado directamente, sino que también realiza un seguimiento de sus hijos bifurcados posteriores. Puede elegir si el alcance de los procesos observados está restringido por el grupo de procesos o por el árbol de procesos.