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?