Hay muchas preguntas y respuestas sobre la limitación de los recursos de un solo proceso, por ejemplo, RLIMIT_AS se puede utilizar para restringir la memoria máxima asignada por un proceso que puede verse como VIRT top. Más sobre el tema, por ejemplo, aquí. ¿Hay alguna manera de limitar la cantidad de memoria que un proceso en particular puede usar en Unix?
setrlimit(2) la documentación dice:
Un proceso hijo creado a través de fork (2) hereda los límites de recursos de su padre. Los límites de recursos se conservan en execve (2).
Debe entenderse de la siguiente manera:
Si un proceso tiene un RLIMIT_AS de, por ejemplo, 2GB, entonces no puede asignar más memoria que 2GB. Cuando genera un hijo, el límite de espacio de direcciones de 2 GB se transferirá al hijo, pero el recuento comienza desde 0. Los 2 procesos juntos pueden ocupar hasta 4 GB de memoria.
Pero, ¿cuál sería la forma útil de restringir la suma total de memoria asignada por un árbol completo de procesos?