如何为特定进程设置内存限制?
我试图在384 GB RAM服务器上执行mpiexec -16 ...
但是它引发了OOM Killer并且被中止了。
如何为mpiexec
执行设置内存限制?
我知道ulimit
,但它可能会影响其他进程。
谢谢。
我认为这可以使用cgroups
来完成:
创建一个名为mpigroup
(或您选择的任何名称)的cgroup,其内存限制(例如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)
或者在这个cgroup中执行mpiexec
:
cgexec -g memory,cpu:mpigroup mpiexec -16 ...