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?