Є багато запитань та відповідей щодо обмеження ресурсів одного процесу, наприклад, RLIMIT_AS може використовуватися для обмеження максимальної пам'яті, виділеної процесом, який можна розглядати як VIRT у подібних top
. Більше про тему, наприклад, тут Чи є спосіб обмежити об'єм пам'яті, який певний процес може використовувати в Unix?
setrlimit(2)
документація говорить:
Дочірній процес, створений за допомогою fork (2), успадковує обмеження ресурсів свого батька. Обмеження ресурсів зберігається через execve (2).
Це слід розуміти так:
Якщо процес має RLIMIT_AS, наприклад 2 Гб, він не може виділити більше пам'яті, ніж 2 ГБ. Коли вона нерестує дитину, обмеження адресного простору в 2 ГБ буде передано дитині, але підрахунок починається від 0. Два разом процеси можуть займати до 4 Гб пам'яті.
Але який би був корисний спосіб обмежити загальну суму пам'яті, виділену цілим деревом процесів?