2 votos

Cómo aumentar el límite máximo de procesos de usuario (Mojave)

Cómo puedo aumentar mi límite máximo de proceso. Actualmente, no puedo ir más de 2500. Estoy en Mojave 10.14.6.

Actualmente lo que hago es:

sudo vim /Library/LaunchDaemons/limit.maxproc.plist // and then increase the limit

sudo launchctl unload -w /Library/LaunchDaemons/limit.maxproc.plist 
sudo launchctl load -w /Library/LaunchDaemons/limit.maxproc.plist
launchctl limit

Sólo puedo aumentar hasta 2500. Quiero que sea mucho más alto que eso.

0 votos

¿Puedo preguntar para qué necesita un límite más alto?

0 votos

@benwiggy. Claro, es para ejecutar un maravilloso experimento llamado Bashlog. github.com/thomasrebele/bashlog/issues/3 .

2 votos

@RAbraham - por los comentarios en github parece que hay cierta confusión entre maxproc (número máximo de procesos concurrentes) y pid_max (donde se envuelve el número de identificación del proceso). maxproc es de 2500 mientras que pid_max es 99999 en MacOS. En linux pid_max es 32768 para sistemas de 32 bits o hasta 4194304 para 64 bits. Parece que (como has sugerido) quizás algo no se está cerrando correctamente ya que no deberías necesitar tantos procesos activos.

3voto

Michael Puntos 193

Parece que el kernel está codificado en 2500 en param.c

#if CONFIG_EMBEDDED
#define NPROC 1000          /* Account for TOTAL_CORPSES_ALLOWED by making this slightly lower than we can. */
#define NPROC_PER_UID 950
#else
#define NPROC (20 + 16 * 32)
#define NPROC_PER_UID (NPROC/2)
#endif

/* NOTE: maxproc and hard_maxproc values are subject to device specific scaling in bsd_scale_setup */
#define HNPROC 2500 /* based on thread_max */
int maxproc = NPROC;
int maxprocperuid = NPROC_PER_UID;

#if CONFIG_EMBEDDED
int hard_maxproc = NPROC;   /* hardcoded limit -- for embedded the number of processes is limited by the ASID space */
#else
int hard_maxproc = HNPROC;  /* hardcoded limit */
#endif

y mientras esto puede se escalen en bcd_scale_setup (si está ejecutando versión del servidor ), hard_maxproc se toma siempre como límite superior según syslimits.h

#if !defined(_ANSI_SOURCE)
/*
 * Note: CHILD_MAX *must* be less than hard_maxproc, which is set at
 * compile time; you *cannot* set it higher than the hard limit!!
 */
#define ARG_MAX        (256 * 1024) /* max bytes for an exec function */
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
#define CHILD_MAX          266  /* max simultaneous processes */

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X