¿Cómo limitar la cantidad de RAM que puede tomar un proceso arbitrario?

11

Digamos que tenemos una máquina OS X con 4 GB de RAM. ¿Es posible configurarlo para que un solo proceso no tarde más que digamos 3 GB, por lo que no importa cómo se acumule la memoria en un proceso, siempre queda algo de memoria para mantener el sistema en funcionamiento?

    
pregunta Fomite 12.03.2012 - 03:52

2 respuestas

8

Aquí se observa una pregunta similar a esta ¿Cómo puedo limitar la cantidad de RAM que puede usar una aplicación de Mac OS?

Recomiendan usar el comando ulimit , pero no pudieron limitar con éxito la cantidad a lo que deseaban. Creo que el problema con el que se encontraron fue el hecho de que la opción que se está configurando -u o -v no tenía en cuenta el sistema de paginación de la memoria, por ejemplo, solo puede asignar X cantidad de espacio para procesar en RAM real, pero podemos ubicar Salir a la memoria virtual todo el día.

Tenga en cuenta que esto puede ser una desactivación peligrosa de la memoria virtual, podría hacer que su Mac se bloquee, etc. cuando se ejecute la memoria RAM.

Intente ejecutar ulimit con los argumentos -l, -m o -v sin embargo, como se indica en la página de manual de ulimit, haga clic en el sistema operativo si prestará atención a esta configuración o no como se indica.

  

ulimit: ulimit [-SHacdefilmnpqrstuvx] [límite]

     

Modificar límites de recursos de shell.

     

Proporciona control sobre los recursos disponibles para el shell y los procesos       crea, en sistemas que permiten tal control.

Realmente no puedo encontrar ninguna fuente definitiva que confirme si OS X ignora ulimit o no, pero después de que falle el ulimit al que se hace referencia

Si puede hacer que ulimit funcione para sus necesidades por sí mismo, entonces inténtelo, si no es posible que una combinación de ulimit y / o desactivación de la memoria virtual le permita configurar ese límite de 3 GB en los procesos de selección. Para su información, aquí hay un buen enlace para obtener más información sobre Deshabilitar completamente la memoria virtual en Snow Leopard System 10.6

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
    
respondido por el MrDaniel 12.03.2012 - 16:44
5

Si está ejecutando el servidor Lion (o el más nuevo OSX) en su Mac, es posible que pueda ejecutar OSX dentro de una VM (VirtualBox, Parallels o VMWare, et.al.) en esa Mac. Limite la máquina virtual a 3 GB de RAM física, y cualquier aplicación o proceso dentro de la máquina virtual también será muy limitado. El sistema que aloja la máquina virtual debe seguir respondiendo incluso si el sistema operativo de la máquina virtual está respaldando-swap-disk-limited o se bloquea.

Si está depurando un proceso potencialmente fuera de control, es posible que pueda ssh en la VM para ejecutar el depurador o un nudo de depuración desde la línea de comandos, y registrar cosas hasta que las cosas se bloqueen.

    
respondido por el hotpaw2 12.03.2012 - 08:01

Lea otras preguntas en las etiquetas