10 votes

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

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

Comment puis-je fixer une limite de mémoire pour mpiexec l'exécution ?

Lo sé. ulimit mais il peut affecter d'autres processus.

Nous vous remercions.

9voto

muru Points 180007

Je pense que cela peut être fait en utilisant cgroups :

Créer un cgroup nommé mpigroup (ou tout autre nom que vous choisirez) 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, faites-le entrer dans ce cgroup :

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

Ou exécuter mpiexec au sein de ce groupe :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X