Il y a beaucoup de questions et réponses sur la contrainte des ressources d'un seul processus, par exemple RLIMIT_AS peut être utilisé pour contraindre la mémoire maximale allouée par un processus qui peut être vu comme VIRT dans les goûts de top
. Plus d'informations sur le sujet, par exemple ici Existe-t-il un moyen de limiter la quantité de mémoire qu'un processus particulier peut utiliser sous Unix?
setrlimit(2)
la documentation dit:
Un processus enfant créé via fork (2) hérite des limites de ressources de son parent. Les limites de ressources sont préservées dans execve (2).
Il doit être compris de la manière suivante:
Si un processus a un RLIMIT_AS de 2 Go par exemple, il ne peut pas allouer plus de mémoire que 2 Go. Lorsqu'il engendre un enfant, la limite d'espace d'adressage de 2 Go est transmise à l'enfant, mais le comptage commence à 0. Les 2 processus ensemble peuvent prendre jusqu'à 4 Go de mémoire.
Mais quelle serait la manière utile de contraindre la somme totale de mémoire allouée par un arbre entier de processus?