web-dev-qa-db-ja.com

特定のプロセスのメモリ制限を設定する方法は?

mpiexec -16 ...を384 GB RAMサーバーで実行しようとしましたが、OOM Killerが誘発され、中止されました。

mpiexec実行のメモリ制限を設定するにはどうすればよいですか?

ulimitは知っていますが、他のプロセスに影響する可能性があります。

ありがとうございました。

10
Benben

これは cgroups を使用して実行できると思います。

メモリ制限(たとえば50GB)を使用して、mpigroup(または任意の名前)という名前のcgroupを作成します。

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