Dans notre cluster, nous restreignons les ressources de nos processus, par exemple memory ( memory.limit_in_bytes
).
Je pense qu'en fin de compte, cela est également géré via le tueur OOM dans le noyau Linux (cela ressemble en lisant le code source ).
Existe-t-il un moyen d'obtenir un signal avant la fin de mon processus? (Tout comme l' -notify
option pour les SGEqsub
, qui sera envoyée SIGUSR1
avant la fin du processus.)
J'ai lu /dev/mem_notify
ici mais je ne l'ai pas - y a-t-il autre chose de nos jours? J'ai également lu ceci qui semble quelque peu pertinent.
Je veux pouvoir au moins vider une petite trace de pile et peut-être quelques autres informations de débogage utiles - mais peut-être que je peux même récupérer en libérant de la mémoire.
Une solution de contournement que j'utilise actuellement est ce petit script qui vérifie fréquemment si je suis proche (95%) de la limite et si oui, il envoie le processus a SIGUSR1
. Dans Bash, je démarre ce script en arrière-plan ( cgroup-mem-limit-watcher.py &
) pour qu'il surveille les autres procs du même groupe de contrôle et se ferme automatiquement lorsque le processus Bash parent meurt.
la source
Réponses:
Il est possible de s'inscrire pour une notification lorsque l'utilisation de la mémoire d'un groupe de contrôle dépasse un seuil. En principe, fixer le seuil à un point approprié en dessous de la limite réelle vous permettrait d'envoyer un signal ou de prendre d'autres mesures.
Voir:
https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt
la source
Le tueur OOM envoie un SIGKILL car il serait autrement contre-productif de laisser le programme problématique choisir de continuer.
Cela signifie qu'il n'y a absolument aucun moyen pour un processus de savoir quand il est sur le point d'être tué par lui.
La gestion de ces problèmes implique généralement d'apporter des corrections aux programmes ou à leur configuration. Parfois, selon la configuration du système, le simple fait d'augmenter l'espace de swap peut donner au système d'exploitation plus de flexibilité de gestion de la mémoire pour éviter de telles mesures drastiques.
la source