Я хочу сделать по-умолчанию ограничение потребления памяти приложением (а именно браузером). Желательно с возможностью легко временно изменять ограничения, например, если я хочу однократно увеличить лимит доступной памяти браузеру до 4 Гб только для одной сессии.
Сейчас я пользуюсь systemd-run:
systemd-run --user --no-block -p MemoryHigh=2G -p MemoryMax=3G firefox -P default
Выдержка из man:
MemoryHigh=bytes
Specify the high limit on memory usage of the executed processes in this unit. Memory usage may go above the limit if unavoidable, but the processes are heavily slowed down and memory is taken away aggressively in such cases. This is the main mechanism to control memory usage of a unit.
MemoryMax=bytes
Specify the absolute limit on memory usage of the executed processes in this unit. If memory usage cannot be contained under the limit, out-of-memory killer is invoked inside the unit. It is recommended to use MemoryHigh= as the main control mechanism and use MemoryMax= as the last line of defense.
Хочется сделать так, чтобы эти ограничения применялись к любому запущенному firefox, не важно, из консоли, через GUI или через xdg-open. И чтобы ограничения были и для самого приложения, и для всех его порождённых тредов и процессов.
В systemd-run это сделано с помощью unified control group hierarchy.