¿Cómo aumento "ulimit -u" (procesos máximos de usuario)?

Puedo cambiar todos los ulimits habituales a través de (por ejemplo) ulimit -n 8192y launchctl limit maxfiles 8192 8192. De alguna manera, esto no parece funcionar para -uel número máximo de procesos de usuario:

~$ sudo launchctl limit maxproc 8192 8192
~$ sudo launchctl limit maxproc
    maxproc     2048           2048
-- in a new terminal:
~$ ulimit -u
1064

De vez en cuando recibo un "fallo al bifurcar" y es bastante molesto tener que matar un montón de procesos cuando "matar" no puede comenzar :) (es decir, generalmente recurro a reiniciar la máquina).

¿Cuál es la forma correcta de cambiar el número máximo de procesos de usuario?

Respuestas (1)

http://blog.ghostinthemachines.com/2010/01/19/mac-os-x-fork-resource-temporarily-undisponible/ habla sobre este problema con gran detalle.

Cuando lo hace sudo launchctl limit maxproc, está viendo o cambiando los límites de inicio de todo el sistema.

Cuando lo hace launchctl limit maxproc, está viendo o cambiando los límites de lanzamiento para su usuario.

Una cosa a tener en cuenta es esto:

El usuario raíz puede aumentar los límites estrictos del lanzamiento de todo el sistema, sin reiniciar. Sin embargo, no puede cambiar los límites estrictos de lanzamiento de un usuario sin reiniciar (incluso si intenta hacerlo como usuario raíz).

Básicamente, el límite estricto (la columna de la derecha) que se muestra cuando lo hace inicialmente launchctl limit maxprocserá el límite que puede establecer ulimit -usin reiniciar. Cerrar sesión y volver a iniciarla no funcionará. Incluso si cambia lo que muestra launchctl limit maxproc, se mantiene el límite estricto inicial. Consulte esta respuesta para obtener un poco más de información sobre la relación entre ulimity launchctl limit. Para aumentar ese límite, tienes que

  • editar/crear /etc/sysctl.confpara generar el máximo de procesos soportados por el kernel

    kern.maxproc=2500
    kern.maxprocperuid=2500
    
  • editar/crear /etc/launchd.confpara elevar los límites estrictos del lanzamiento de todo el sistema en el momento del arranque

    limit maxproc 2500 2500
    
  • reiniciar

También tenga en cuenta que 2500 parece ser el límite máximo que kern.maxprocse puede establecer. Haré una pregunta sobre esto tan pronto como reinicie y tenga suficientes procesos libres para abrir otra pestaña de Chrome.

Nota: el launchd.confmétodo ya no funciona en Mavericks y otras distribuciones más nuevas.