GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum kann der OOM-Killer nicht einfach den Prozess beenden, der zu viel verlangt?

Betrachten Sie dieses Szenario:

  • Sie haben 4 GB Speicherplatz frei.
  • Ein fehlerhafter Prozess weist 3,999 GB zu.
  • Sie öffnen einen Task-Manager, um den außer Kontrolle geratenen Prozess zu beenden. Der Task-Manager weist 0,002 GB zu.

Wenn der Prozess, der beendet wurde, der letzte Prozess war, der Speicher anforderte, würde Ihr Task-Manager beendet werden.

Oder:

  • Sie haben 4 GB Speicherplatz frei.
  • Ein fehlerhafter Prozess weist 3,999 GB zu.
  • Sie öffnen einen Task-Manager, um den außer Kontrolle geratenen Prozess zu beenden. Der X-Server weist 0,002 GB zu, um das Fenster des Task-Managers zu verwalten.

Jetzt wird Ihr X-Server getötet. Es hat das Problem nicht verursacht; es war nur "zur falschen Zeit am falschen Ort". Es war zufällig der erste Prozess, der mehr Speicher zuwies, als keiner mehr übrig war, aber es war nicht der Prozess, der von Anfang an den gesamten Speicher verbraucht hat.


Linux
  1. Linux – Speichernutzung für einen einzelnen Linux-Prozess begrenzen?

  2. Tool, das die Protokollierung der Speichernutzung ermöglicht?

  3. Linux – Wie entscheidet der Oom-Killer, welcher Prozess zuerst getötet wird?

  4. Linux – Ist es der Prozess, der ein steuerndes Terminal hat, oder ist es die Sitzung, die ein steuerndes Terminal hat?

  5. Der Unterschied zwischen Kill, Pkill und Killall?

Warum den Pantheon-Desktop für Linux Elementary OS verwenden

Was hat meinen Prozess zerstört und warum?

Wie kann ich den beim Kopieren verwendeten Cache begrenzen, damit noch Speicher für andere Caches verfügbar ist?

Wie bekomme ich die Prozess-ID, um einen Nohup-Prozess zu beenden?

Warum kann ich diesen Prozess unter Linux nicht beenden?

Begrenzen Sie die Speichernutzung für einen einzelnen Linux-Prozess