lowmemorykiller beendet Prozesse

Oliver500

Active member
Original poster
6 März 2022
50
Hallo zusammen,

ich habe eine gerootetes Shift6mq mit ShiftOS 3.10 G. Seit einiger Zeit habe ich ein Problem, was nach ca. einer Woche nach einem Neustart auftritt, und unmittelbar nur durch einen weiteren Neustart des Systems "behoben" werden kann: Der Dienst "lowmemorykiller" beendet diverse im Hintergrund laufende Prozesse ("LogFox" zeigt zu den Zeitpunkten entsprechende Meldungen). Dies passiert aber, obwohl noch genügend RAM-Speicher verfügbar zu sein scheint. Ich weiß nicht genau, wie ich den aktuell freien RAM-Speicher ermitteln kann. Ich habe dafür bisher die App "Device Info" (https://play.google.com/store/apps/details?id=com.ytheekshana.deviceinfo) verwendet. Sobald der Zeitpunkt gekommen ist, an dem lowmemorykiller beginnt, Hintergrundprozesse zu beenden, zeigt mir die App an, dass 50 bis 60 Prozent des verfügbaren RAM-Speichers belegt sind. Nachdem lowmemorykiller diverse Prozesse im Hintergrund beendet hat, zeigt die App eine Belegung des RAM-Speichers zwischen 20 und 30 Prozent an. Meistens ist der Zeitpunkt, an dem lowmemorykiller Prozesse beendet, dann gekommen, wenn im Hintergrund eine Datensicherung stattfinden soll. Hierbei sind zu nennen: Titanium Backup, Neo Backup und eine App-interne Sicherung von Chatverläufen der App Signal. Zuletzt habe ich alle Sicherungen im Titanium Backup und Neo Backup deaktiviert, worauf lowmemorykiller bei der Sicherung von Signal mit dem Beenden von Prozessen begonnen hat, auch von der App Signal selbst, was dann zu einem Neustart der Sicherung führte. Auch dies passierte mehrmals hintereinander während einer laufenden Sicherung, d.h. die Hintergrundprozesse werden wiederholt hintereinander beendet, wobei die App "Device Info" eine RAM-Speicherbelegung zwischen 50-60% und 20-30% (nach lowmemorykiller) anzeigt. Mir stellen sich hierzu also folgende Fragen:
  • Ist der Füllstand des RAM-Speichers tatsächlich wie über die App "Device Info" angezeigt noch ausreichend niedrig, und startet somit lowmemorykiller zu früh?
  • Falls ja, was ließe sich hier unternehmen? Gibt es ein Konfigurationsproblem, und wenn ja welches? Ließe sich lowmemorykiller ggf. anders konfigurieren?
  • Falls nein, wie ist der tatsächliche Füllstand des RAM-Speichers, wie ließe sich dieser sinnvoll und verlässlich tracken, und vor allem, laufen tatsächlich zu viele Hintergrundprozesse oder gibt es einen einzelnen "Verursacher" für den hohen Speicherfüllstand? (in der Einstellungs-App kann ich unter "Von Apps verbrauchter Speicher" keine verursachende App ausmachen, was eher zu dem von "Device Info" gemeldeten Informationen passen würde)
Hat jemand Erfahrung bei solchen Speicher-Problemen und könnte mir hier eine Hilfestellung geben, was ich am Besten tun könnte?
 
Ich bin mir nicht sicher, aber hier scheint nach meinem Verständnis der Fall ein wenig anders zu liegen, als über https://dontkillmyapp.com/ erklärt. Dort werden Apps beendet, um die Akkulaufzeit zu verlängern, unabhängig von der Belegung des Speicherplatzes. Lowmemorykiller scheint in einem zweiten Schritt durch Android zum Einsatz zu kommen, um bei Speicherengpässen wieder Platz zu schaffen. Das betrifft auch Hintergrundapps, die so konfiguriert wurden, dass keine Akku-Optimierung durchgeführt werden soll.
 
Da dein Gerät gerootet ist, könntest du ro.lmk.debug=true setzen und das Gerät neustarten, um extra logging für LMKD zu aktivieren.
Vielleicht fällt dir da dann eher was auf.
 
Ich habe jetzt über ein Terminal mittels setprop ro.lmk.debug true diese Eigenschaft gesetzt. Nach einem Neustart des Geräts wird sie allerdings wieder entfernt, weshalb ich darauf verzichtet habe. In der Logausgabe von Logfox sind allerdings keine weiteren oder zusätzlichen Informationen zu lowmemorykiller enthalten. Hier wird einfach nur gelistet, welcher Prozess beendet wurde, um wie viel Speicher frei zu bekommen.
 
Zusätzlich habe ich jetzt beobachten können, wie zwei im Hintergrund laufende Apps / Dienste durch lowmemorykiller beendet wurden. Die entsprechenden Benachrichtigungen dieser Apps wurden dadurch entfernt. Die Belegung des RAM-Speichers wurde dadurch von (nur!) 2,6 GB vorher auf 2,1 GB nachher erhöht. Da das Gerät 8 GB RAM-Speicher hat, steht das doch in keinem Verhältnis, oder sehe ich das falsch? Aktuell ist das Gerät für mich nur noch äußerst eingeschränkt nutzbar. Ich sehe keinen Ansatz, wie ich das eigentliche Problem identifizieren und die Ursache beheben kann.
 
Zusätzlich habe ich jetzt beobachten können, wie zwei im Hintergrund laufende Apps / Dienste durch lowmemorykiller beendet wurden. Die entsprechenden Benachrichtigungen dieser Apps wurden dadurch entfernt. Die Belegung des RAM-Speichers wurde dadurch von (nur!) 2,6 GB vorher auf 2,1 GB nachher erhöht. Da das Gerät 8 GB RAM-Speicher hat, steht das doch in keinem Verhältnis, oder sehe ich das falsch? Aktuell ist das Gerät für mich nur noch äußerst eingeschränkt nutzbar. Ich sehe keinen Ansatz, wie ich das eigentliche Problem identifizieren und die Ursache beheben kann.
Auch schon probiert in den Entwickleroptionen -> Apps im Standby-Modus geschaut ob die betroffenen Apps auch alle auf NEVER oder ACTIVE stehen?
 
Auch schon probiert in den Entwickleroptionen -> Apps im Standby-Modus geschaut ob die betroffenen Apps auch alle auf NEVER oder ACTIVE stehen?
Nein, dort hatte ich noch nicht nachgeschaut. Die Apps stehen alle auf EXEMPTED und lassen sich dort auch nicht umstellen (ausgegraut). Ich würde vermuten, dies ist deshalb so, weil ich die Apps von der Akku-Optimierung ausgenommen habe.
 
Nein, dort hatte ich noch nicht nachgeschaut. Die Apps stehen alle auf EXEMPTED und lassen sich dort auch nicht umstellen (ausgegraut). Ich würde vermuten, dies ist deshalb so, weil ich die Apps von der Akku-Optimierung ausgenommen habe.
Dann ist wohl alles richtig konfiguriert, der lmk ist halt sehr aggressiv, weshalb ich wie gesagt das genannte LSPosed Modul nutze
 
Dann ist wohl alles richtig konfiguriert, der lmk ist halt sehr aggressiv, weshalb ich wie gesagt das genannte LSPosed Modul nutze
Es kann aber doch nicht sein, dass Apps wie Syncthing oder Automate, die im Hintergrund laufen, beendet werden, nur weil Signal nachts ein Backup des Chatverlaufs durchführt. Gleiches passiert bei Sicherungen durch Titanium Backup oder Neo Backup. Die Logs im LogFox zeigen, dass diverse Apps beendet werden, nicht nur die beiden zuerst genannten. Teilweise auch einfache Google-Standardapps. Irgendetwas kann hier nicht stimmen, zumal das Ganze vorher ja auch viele Monate ohne Probleme lief. Wie lässt sich denn der LMKD debuggen bzw. an die Debug-Informationen herankommen, die mittels ro.lmk.debug = true aktiviert worden sein sollen. Ich habe auch schon versucht, das Ganze über lmkd --reinit zu aktivieren, aber die Logs über LogFox scheinen keine zusätzlichen Informationen zu enthalten.
 
Mittlerweile werden auch im Vordergrund stehende Apps beendet. Es wurde auch die "Uhr"-App beendet, die ich im Vordergrund stehen gelassen habe, und die einen Alarm auslösen sollte, und ich habe verschlafen. @amartinz Wie kann ich die Informationen der Logfiles des Low Memory Killer Daemons auswerten, auch wenn ich die Einstellung ro.lmk.debug = true gesetzt habe? Wo gibt es diese Logfiles, oder wie werte ich die Informationen aus, die Low Memory Killer Daemon ausgibt, die mehr Aufschluss über den Grund für die App-Beendigungen geben können?
 
Es wurde auch die "Uhr"-App beendet, die ich im Vordergrund stehen gelassen habe, und die einen Alarm auslösen sollte, und ich habe verschlafen.
Bei manchen Uhrenapps (Simple Clock und Fossify Clock als Beispiel) ist es keine gute Idee, den Wecker im Vordergrund zu halten. Die wecken nämlich dann nicht, weil sie glauben, dass der User schon wach ist (kein Bug, ein nicht abschaltbares Feature).
 
Bei manchen Uhrenapps (Simple Clock und Fossify Clock als Beispiel) ist es keine gute Idee, den Wecker im Vordergrund zu halten. Die wecken nämlich dann nicht, weil sie glauben, dass der User schon wach ist (kein Bug, ein nicht abschaltbares Feature).
Es ist nachweislich so, dass der Low Memory Killer Daemon den entsprechenden Prozess "abgeschossen" hat. Dies betrifft nicht nur die Uhren-App, sondern zahlreiche andere Apps ebenso, bis hin zu im Hintergrund laufende Apps, Signal (während es eine Sicherung ausführt) und selbst die Launcher App, die hin und wieder einfach beendet und neu angestartet wird. All das lässt sich über den LogFox nachweisen (siehe meine vorherigen Postings in diesem Thread).