Esistono molte domande e risposte sulla limitazione delle risorse di un singolo processo, ad esempio RLIMIT_AS può essere utilizzato per limitare la memoria massima allocata da un processo che può essere visto come VIRT come top
. Maggiori informazioni sull'argomento, ad esempio qui Esiste un modo per limitare la quantità di memoria che un determinato processo può utilizzare in Unix?
setrlimit(2)
la documentazione dice:
Un processo figlio creato tramite fork (2) eredita i limiti delle risorse dei suoi genitori. I limiti delle risorse vengono mantenuti in execve (2).
Dovrebbe essere compreso nel modo seguente:
Se un processo ha un RLIMIT_AS, ad esempio 2 GB, non può allocare più memoria di 2 GB. Quando genera un figlio, il limite di 2 GB di spazio indirizzo verrà passato al figlio, ma il conteggio inizia da 0. I 2 processi insieme possono richiedere fino a 4 GB di memoria.
Ma quale sarebbe il modo utile di limitare la somma totale della memoria allocata da un intero albero di processi?