Einige Eintauchversuche apt-check
gaben mir diese Hinweise, weil es sich um ein sehr klares Skript handelt, das repariert werden muss. Bei allem Respekt vor den Autoren scheitert es auf meinen Servern. Hier sind meine Gedanken:
apt-check
== /usr/lib/update-notifier/apt_check.py
- zwingt sich nicelevel 19
- Für Aktionen wurden keine Zeitlimits festgelegt
Die Kombination der letzten beiden erlaubt es, sich endlos spiralförmig nach unten zu stapeln. Wenn das System für andere Zwecke mit höherer Priorität verwendet wird, nimmt die Anzahl der Prozesse nur zu und es gibt kein Ende, da apt-check
es niemals eine höhere Priorität erhält. Probleme werden erst schlimmer, wenn der OOM-Killer entscheidet, Ihre lebenswichtigen Systemprozesse zu beenden.
Wenn einer dieser beiden Verhaltensaspekte unterschiedlich wäre, würde es dem System nicht ermöglichen, in einem derart defekten Zustand zu enden, so gehe ich davon aus.
Auch wenn Strings Recht haben, dass die übergeordneten Prozesse auch dafür verantwortlich sind, glaube ich, dass die folgenden Punkte Fehler sind apt-check
und als Fehler gemeldet werden müssen, um richtig angesprochen zu werden:
- es sollte den OOM-Mörder anregen , sich zuerst töten zu lassen
- es sollte nicht die schönste fest codierte Ebene einstellen
- Es sollte beendet werden, wenn es unangemessen lange dauert, Informationen abzurufen
Tatsächlich scheint der Linux-OOM-Killer diesbezüglich eine Heuristik zu betreiben. Gekennzeichnete Prozesse erhalten eine höhere Punktzahl, und lang laufende Prozesse werden verringert. ( Quelle - Danke an Ulrich Dangel für den Hinweis )
Mögliche Lösung, die ich vorschlagen kann:
- Cache-Ergebnisse nach der Verarbeitung
- Ausgabecache bei weniger als N Sekunden ohne Laden aller Python-APT-Bibliotheken für jeden einfachen (geraden
--help
) Aufruf.
- mach den Nicelevel konfigurierbar - Erlaube mir dies zu ändern / deaktivieren, bitte! Ich glaube, dass es tatsächlich helfen wird, es auf 0 zu setzen
- Lass es die OOM-Killer-Punktzahl erhöhen