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 */
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.
0 votos
@lx07. Te agradezco enormemente que te hayas tomado la molestia de mirar el tema del Bashlog y de hacer un comentario tan valioso. Se lo transmitiré al autor. Si alguna vez te parece bien conectar en LinkedIn o algo así, házmelo saber. Estoy en linkedin.com/in/rajivabraham