Как ограничить процессу оперативную память по PID?

Слышал про cgroup но не нашёл нигде команду для ограничения памяти процессу.
  • Вопрос задан
  • 2063 просмотра
Пригласить эксперта
Ответы на вопрос 3
Olej
@Olej
инженер, программист, преподаватель
Можете попробовать изменить лимит RAM в ограничениях экземпляра командного интерпретатора, из которого выполняете программу ... см.:
$ ulimit -Sm
unlimited


Слышал про cgroup

Для этого нужен LXC контейнеры.
Вы готовы пойти таким достаточно сложным путём для такой простой цели?

но не нашёл нигде команду

Возможно вам что-то подскажет перевод целой серии статей непосредственно от автора LXC: LXC 1.0
Ответ написан
Singaporian
@Singaporian
Вам нужен CGroups.
ulimit прекрасно обходится и толком не работает.
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Пара ссылочек по теме о современных способах манипуляции группами в разных дистрибутивах:
https://wiki.archlinux.org/index.php/Cgroups
https://www.digitalocean.com/community/tutorials/h...

Хардкорный способ с ручным добавлением группы (memory:/test), ограничением памяти в ней (одним мегабайтом) и перемещением процесса ($PID) в неё:

# mkdir /sys/fs/cgroup/memory/test
# echo 1048576 > /sys/fs/cgroup/memory/test/memory.limit_in_bytes
# echo $PID >  /sys/fs/cgroup/memory/test/tasks
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы