Puedo cambiar todos los ulimits habituales a través de (por ejemplo) ulimit -n 8192
y launchctl limit maxfiles 8192 8192
. De alguna manera, esto no parece funcionar para -u
el 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?
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 maxproc
será el límite que puede establecer ulimit -u
sin 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 ulimit
y launchctl limit
. Para aumentar ese límite, tienes que
editar/crear /etc/sysctl.conf
para generar el máximo de procesos soportados por el kernel
kern.maxproc=2500
kern.maxprocperuid=2500
editar/crear /etc/launchd.conf
para 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.maxproc
se puede establecer. Haré una pregunta sobre esto tan pronto como reinicie y tenga suficientes procesos libres para abrir otra pestaña de Chrome.
kenorb
launchd.conf
método ya no funciona en Mavericks y otras distribuciones más nuevas.