[erledigt] Fhem auf 100% CPU

Begonnen von alru, 24 April 2019, 12:07:43

Vorheriges Thema - Nächstes Thema

alru

Moin,

nachdem meine Installation jetzt ein paar Monate ohne Update stabil gelaufen ist, wurde sie in den letzten Tagen sehr langsam (ausgerechnet im Urlaub ...). D.h., die Benutzung über das UI ist sehr langsam. Die Ausgabe von "top" bestätigt dann, dass ein Core des Pi3B vollständig mit dem FHEM Prozess ausgelastet ist.

Da ich an der Installation wie gesagt lange keine wesentlichen Änderungen durchgeführt habe (die man hätte zurück nehmen können), habe ich folgende Versuche gestartet:

Im Log war nichts zu entdecken
Linux upgrade und reboot -> keine Änderung
FHEM update und reboot -> keine Änderung

Ein "strace" auf den FHEM Prozess ergab dann, dass quasi ohne Unterbrechung auf "/etc/localtime" zugegriffen wird. Der Bildschirm scrollt die Zugriffe mit Maximalgeschwindigkeit runter. Sieht für mich nicht normal aus ....

Was kann man tun?

Edit:
Ich hab jetzt mal im Event Monitor nachgesehen. Da hat ein simples notify permanent gesendet. Keine Ahnung warum, aber nachdem ich das deaktiviert hatte, ist wieder alles OK.
Gruß,

Stefan
(Raspi 3B - Stretch / HM-LGW / HomeMatic / MySensors)

Wernieman

Gucke mal, was Deine Uhrzeit auf dem Pi so sagt ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

CoolTux

Das Notify würde mich mal interessieren.
Kannst Du bitte ein list davon geben.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

alru

Zitat von: Wernieman am 24 April 2019, 12:43:31
Gucke mal, was Deine Uhrzeit auf dem Pi so sagt ....

"date" gibt die korrekte Zeit aus
Gruß,

Stefan
(Raspi 3B - Stretch / HM-LGW / HomeMatic / MySensors)

alru

#4
Zitat von: CoolTux am 24 April 2019, 12:45:11
Das Notify würde mich mal interessieren.
Kannst Du bitte ein list davon geben.

Ich war da jetzt angesichts der Freude über den gefundenen Fehler ein wenig voreilig und habe das notify gelöscht, da ich es auch nicht mehr brauche. Ich werde das über die neuen DOIF Funktionen (https://forum.fhem.de/index.php/topic,95759.0.html) lösen.

Hintergrund:
Ich will bei bestimmten Gewichtsveränderungen meiner Stockwaage einen Alarm (Schwarmalarm) auslösen. Dazu muss ich einen Messwert abspeichern (weight_alt) und beim nächsten Messzyklus mit dem aktuellen (weight_neu) vergleichen. Das notify sollte jetzt bei jeder Änderung und nach dem _alt/_neu-Vergleich den _neu Wert für den nächsten Vergleichszyklus in _alt abspeichern.
Die Speicherung erfolgt in einem entsprechenden Reading des Devices (ein MYSENSOR - node, der Gewicht, Temperatur, Luftfeuchte des Bienenstockes misst).
Die Aktualisierungen erfolgen alle 10 Min.

Die Programmierung des notify sollte erst einmal nur die alten Werte abspeichern. Weiter bin ich noch gar nicht gekommen, da ich noch Schwellwerte für den Alarm ermitteln muss. Das sah etwa so aus:
defmod Stockwaage1.Gewicht notify Stockwaage1.weight_neu.* {fhem ("sleep 0.1; setreading Stockwaage1.weight_alt [Stockwaage1:weight_neu]");}

Und das ist ohne Unterbrechung gelaufen...

Edit:
Da war noch ein sleep vor dem Befehl (copy/paste ohne Nachdenken!!!) und dann ist es (glaube ich) selbsttriggernd und das könnte der Grund gewesen sein.
Gruß,

Stefan
(Raspi 3B - Stretch / HM-LGW / HomeMatic / MySensors)