web-dev-qa-db-fra.com

Comment définir une limite de mémoire pour un processus spécifique?

J'ai essayé d'exécuter mpiexec -16 ... sur un serveur de 384 Go RAM, mais il a induit KOO Killer et a été abandonné.

Comment définir une limite de mémoire pour l'exécution de mpiexec?

Je sais ulimit, mais cela pourrait affecter d’autres processus.

Je vous remercie.

10
Benben

Je pense que cela peut être fait en utilisant cgroupsNAME _ :

Créez un groupe de travail nommé mpigroup(ou le nom de votre choix) avec une limite de mémoire (de 50 Go, par exemple):

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

Ensuite, si mpiexec est déjà en cours d'exécution, amenez-le dans ce groupe de contrôle:

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

Ou exécutez mpiexecdans ce groupe de contrôle:

cgexec -g memory,cpu:mpigroup mpiexec -16 ...
9
muru