如何为特定进程设置内存限制?

如何为特定进程设置内存限制?

mpiexec -16 ...我尝试在 384 GB RAM 服务器上执行,但它引发了 OOM Killer 并被中止。

如何设置mpiexec执行内存限制?

我知道ulimit,但它可能会影响其他进程。

谢谢。

答案1

我认为这可以用cgroups

创建一个名为 (或任何您选择的名称) 的 cgroup,mpigroup并设置内存限制 (例如 50GB):

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 ...

相关内容