GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi l'OOM-Killer ne peut-il pas simplement tuer le processus qui en demande trop ?

Considérez ce scénario :

  • Vous disposez de 4 Go de mémoire libre.
  • Un processus défectueux alloue 3 999 Go.
  • Vous ouvrez un gestionnaire de tâches pour arrêter le processus incontrôlable. Le gestionnaire de tâches alloue 0,002 Go.

Si le processus qui a été tué était le dernier processus à demander de la mémoire, votre gestionnaire de tâches serait tué.

Ou :

  • Vous disposez de 4 Go de mémoire libre.
  • Un processus défectueux alloue 3 999 Go.
  • Vous ouvrez un gestionnaire de tâches pour arrêter le processus incontrôlable. Le serveur X alloue 0,002 Go pour gérer la fenêtre du gestionnaire de tâches.

Maintenant, votre serveur X est tué. Cela n'a pas causé le problème; c'était juste "au mauvais endroit au mauvais moment". Il s'est avéré que c'était le premier processus à allouer plus de mémoire alors qu'il n'en restait plus, mais ce n'était pas le processus qui utilisait toute la mémoire pour commencer.


Linux
  1. Linux - Limiter l'utilisation de la mémoire pour un seul processus Linux ?

  2. Linux - Comment le tueur d'Oom décide-t-il quel processus tuer en premier ?

  3. Linux - Est-ce le processus qui a un terminal de contrôle, ou est-ce la session qui a un terminal de contrôle ?

  4. Qu'est-ce qui a tué mon processus et pourquoi ?

  5. Comment puis-je limiter le cache utilisé par la copie afin qu'il y ait encore de la mémoire disponible pour un autre cache ?

Pourquoi utiliser le bureau Pantheon pour Linux Elementary OS

10+ exemples pour tuer un processus sous Linux

Comment puis-je mesurer l'utilisation réelle de la mémoire d'une application ou d'un processus ?

Comment obtenir l'ID de processus pour tuer un processus nohup ?

Comment puis-je tester la RAM pour la corruption des données sur un système basé sur ARM ?

Comment tuer un processus qui ne meurt jamais ?