Как установить предел памяти для определенного процесса?

Я пытался выполнить 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 ...
Другие вопросы по тегам