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

Я пытался выполнить mpiexec -16 ... на сервере ОЗУ 384 ГБ, но это вызвало OOM Killer и было прервано.

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

Я знаю ulimit, но это может повлиять на другие процессы.

Спасибо.

10
задан 13 August 2014 в 21:10

1 ответ

Я думаю, что это может быть сделано с помощью cgroups :

Создают cgroup, названный mpigroup (или безотносительно имени, которое Вы выбираете) с пределом памяти (50 ГБ, например):

cgcreate -g memory,cpu:mpigroup
cgset -r memory.limit_in_bytes=$((50*1024*1024*1024)) mpigroup

Затем если mpiexec уже работает, принесите его в этот cgroup:

cgclassify -g memory,cpu:mpigroup $(pidof mpiexec)

Или выполняются mpiexec в этом cgroup:

cgexec -g memory,cpu:mpigroup mpiexec -16 ...
0
ответ дан 13 August 2014 в 21:10
  • 1
    одна последняя проблема: вход в систему требуется, когда возобновление от приостанавливает; как отключают его? – Nasreddine 25 December 2015 в 09:33

Другие вопросы по тегам:

Похожие вопросы: