Как установить предел памяти для определенного процесса?
Я пытался выполнить mpiexec -16 ...
на сервере ОЗУ 384 ГБ, но он вызвал OOM Killer и был прерван.
Как я могу установить ограничение памяти для mpiexec
исполнение?
я знаю ulimit
, но это может повлиять на другие процессы.
Спасибо.
1 ответ
Решение
Я думаю, что это можно сделать с помощью cgroups
:
Создать группу с именем mpigroup
(или любое другое имя по вашему выбору) с ограничением памяти (например, 50 ГБ):
cgcreate -g memory,cpu:mpigroup
cgset -r memory.limit_in_bytes=$((50*1024*1024*1024)) mpigroup
Затем, если mpiexec уже запущен, перенесите его в эту группу:
cgclassify -g memory,cpu:mpigroup $(pidof mpiexec)
Или выполнить mpiexec
внутри этой группы:
cgexec -g memory,cpu:mpigroup mpiexec -16 ...