TL;DR
- El método para aumentar los procesos máximos por usuario descrito en el tutorial al que hace referencia el OP es peligroso e ineficaz. No lo haga de esa manera. Si necesita más procesos por usuario, habilite Modo de rendimiento del servidor como se describe aquí .
- "¿Qué es este número, por qué exactamente 1064?" Ver ¿Por qué MacOS está limitado a 1064 o 2088 procesos?
- "De todas formas, ¿por qué estoy limitado en procesos de usuario?" Debido a que el sistema sólo puede ejecutar un número limitado de procesos a la vez, el sistema limita a los usuarios a un número menor de procesos para que el propio sistema siga siendo capaz de ejecutar procesos, por ejemplo uno para mostrar una advertencia de que se ha quedado sin procesos.
Detalles
Los artículos a los que enlaza el OP son PELIGROSO porque instalan configuraciones que permiten a un solo usuario colapsar el ordenador llenando la tabla de procesos, lo que significa que pueden crear tantos procesos como el sistema permita (bueno, probablemente menos 2 o más reservados para root
, que era una especie de protección contra esto en los viejos tiempos, cuando 2 procesos eran suficientes para que un administrador del sistema pudiera entrar y arreglar los problemas). También instalan esas configuraciones de una manera para la que no hay una reversión automática o fácil una vez que se olvida que las estableció o cómo las estableció, y pueden interferir con futuros aumentos por defecto cuando se actualiza a una nueva versión del sistema operativo. Y lo que es más importante, no consiguen realmente lo que dicen conseguir con respecto al aumento del número de procesos que puede ejecutar un usuario.
El límite duro por defecto para kern.maxproc
(el número total máximo de procesos que pueden ejecutarse al mismo tiempo en todo el sistema) en OS X es de 1064. El límite era de 566 hasta OS X Lion, momento en el que se aumentó a 1064 para ordenadores con 3 GiB o más de memoria. El límite se incrementó de nuevo en High Sierra para ordenadores con 12 GiB o más de memoria (la fórmula exacta se detalla en la descripción de serverperfmode
aquí .) y volvió a aumentar en Catalina (y supongo que volverá a aumentar en Big Sur). (Véase ¿Por qué MacOS está limitado a 1064 o 2088 procesos? para obtener más detalles sobre el origen de números específicos como el 1064). Aunque puede cambiar el número mientras el sistema está funcionando, no tiene efecto inmediato; tiene que establecerlo durante el proceso de arranque para que tenga efecto y en ese momento el kernel no pasará de 1064 (o cualquier límite que ya esté viendo).
Puede establecer kern.maxprocperuid
(el número máximo de procesos que un mismo usuario puede tener en ejecución al mismo tiempo) a un número mayor, incluso superior a kern.maxproc
pero si es demasiado alto, se corre el riesgo de que un proceso fuera de control bloquee toda la máquina al llenar la tabla de procesos. Por eso el valor por defecto maxprocperuid
es 709, que es 2/3 de 1064: para asegurar que un solo usuario no pueda ocupar todos los procesos.
Modo de rendimiento del servidor
Antes de High Sierra, la única forma de aumentar kern.maxproc
por encima de 1064 es tener al menos 16 GiB de memoria instalada y el activar el "Modo de Rendimiento de Servidor", que reconfigura el kernel para operar como un servidor en lugar de una estación de trabajo interactiva. A partir de High Sierra se puede aumentar kern.maxproc
por añadir más memoria Pero aún así, a falta de añadir memoria, la única manera de aumentarla es activando el "Modo de Rendimiento del Servidor". En ese modo, kern.maxproc
se ajusta a floor(system_memory/8 GiB) * 2500
. También se obtiene límites mucho más altos en muchos otros parámetros, como el máximo de archivos abiertos y el máximo de conexiones de red. Estos límites más altos se obtienen automáticamente, sin tener que crear o modificar archivos como los artículos enlazados le dicen.
Si sysctl kern.maxproc
devuelve kern.maxproc: 1064
(o cualquier múltiplo de 532 o 1044) entonces sabe que no tiene activado el modo de rendimiento del servidor. Para activarlo, ejecute esta línea de comando en el terminal:
sudo nvram boot-args="serverperfmode=1 $(nvram boot-args 2>/dev/null | cut -f 2-)"
y reiniciar. Esa configuración persistirá y su ordenador permanecerá en modo servidor hasta que borre completamente la NVRAM o desactive el Modo de Rendimiento del Servidor ejecutando
sudo nvram boot-args="$(nvram boot-args 2>/dev/null | sed -e $'s/boot-args\t//;s/serverperfmode=1//')"
Activar el Modo de Rendimiento del Servidor es más seguro y fácil que intentar cambiar los parámetros individuales del kernel editando los archivos de configuración, y tiene la ventaja añadida de funcionar donde esas otras cosas no lo hacen. Y a diferencia de la edición de los archivos de configuración, también se revierte automáticamente cuando se borra la NVRAM, que es una parte estándar de la restauración de un equipo mal configurado a una configuración estándar y sana.
Puede leer más sobre esto Corregir "fork: recurso temporalmente no disponible" en OS X .