lowmemorykiller beendet Prozesse

Oliver500

Member
Original poster
6 März 2022
48
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.