Istnieje wiele pytań i odpowiedzi na temat ograniczania zasobów pojedynczego procesu, np. RLIMIT_AS może być wykorzystany do ograniczenia maksymalnej pamięci przydzielonej przez proces, który może być postrzegany jako VIRT top
. Więcej na ten temat, np. Tutaj Czy istnieje sposób na ograniczenie ilości pamięci, którą dany proces może wykorzystać w Uniksie?
setrlimit(2)
dokumentacja mówi:
Proces potomny utworzony za pomocą fork (2) dziedziczy limity zasobów rodzica. Limity zasobów są zachowane w execve (2).
Należy to rozumieć w następujący sposób:
Jeśli proces ma RLIMIT_AS wynoszący np. 2 GB, nie może przydzielić więcej pamięci niż 2 GB. Po odrodzeniu dziecka limit przestrzeni adresowej 2 GB zostanie przekazany dziecku, ale liczenie zaczyna się od 0. Dwa procesy łącznie mogą zająć do 4 GB pamięci.
Ale jaki byłby użyteczny sposób ograniczenia całkowitej sumy pamięci przydzielanej przez całe drzewo procesów?