Es gibt viele Fragen und Antworten zum Einschränken der Ressourcen eines einzelnen Prozesses, z. B. kann RLIMIT_AS verwendet werden, um den durch einen Prozess zugewiesenen maximalen Speicher einzuschränken, der in etwa als VIRT angesehen werden kann top. Mehr zum Thema zB hier Gibt es eine Möglichkeit, die Speicherkapazität zu begrenzen, die ein bestimmter Prozess in Unix verwenden kann?
setrlimit(2) Dokumentation sagt:
Ein über fork (2) erstellter untergeordneter Prozess erbt die Ressourcenbeschränkungen des übergeordneten Prozesses. Ressourcenlimits werden in execve (2) beibehalten.
Es sollte folgendermaßen verstanden werden:
Wenn ein Prozess ein RLIMIT_AS von z. B. 2 GB hat, kann er nicht mehr Speicher als 2 GB zuweisen. Wenn ein untergeordnetes Element erzeugt wird, wird das Adressraumlimit von 2 GB an das untergeordnete Element weitergegeben, die Zählung beginnt jedoch bei 0. Die beiden Prozesse zusammen können bis zu 4 GB Speicher belegen.
Aber wie könnte man die Gesamtsumme des von einem ganzen Prozessbaum zugewiesenen Speichers begrenzen?