FHEM (Perl) läuft mit 100% CPU Last bei Neuinstallation?

Begonnen von nicor2k, 05 Oktober 2015, 14:47:46

Vorheriges Thema - Nächstes Thema

nicor2k

Hallo! Ich habe folgendes Problem - wollte einen 2. Raspberry Pi mit FHEM installieren und habe alles so gemacht wie hier (und auf meinem seit jetzt fast einem Jahr mit FHEM laufenden Pi...)
http://www.computerhilfen.de/info/schnell-anleitung-fhem-auf-einem-raspberry-pi-installieren.html

Also SD Karte formatiert, Noobs aufgespielt, Raspbian installiert, dann Perl geladen und FHEM. Das hat auch wunderbar geklappt, konnte direkt mit dem Browser darauf zugreifen. Nach einem Neustart des Rechners läuft Perl aber plötzlich mit 100% CPU Last (wenn ich den Befehl "top" eingebe), der Browser versucht zwar noch, sich mit dem Rechner zu verbinden, es kommt aber keine Seite. Habe das ganze an einem 2. Raspberry probiert mit einer ebenfalls neuen SD Karte, wieder formatiert, installiert etc. Bis zum Neustart funktioniert alles problemlos, danach läuft auch da FHEM mit 100% und liefert keine Webseite mehr aus.

Update: Auch auf dem neuen Raspberry Pi 4 machte FHEM / Perl bei mir Probleme und kam auch wieder auf immerhin über 55% CPU Last. Interessanterweise lief dann auch MPD (für die Audio-Ausgaben von FHEM bei mir zuständig) mit über 60%. Einen Trick gibt es aber: Wenn ich den Start von FHEM mit einem "sleep 5" um 5 Sekunden verzögere, läuft alles normal und Perl und MPD haben wieder eine einstellige CPU-Auslastung - jetzt auf mehreren Raspberry Pis getestet. Wie das aussehen muss, habe ich hier als Screenshot für Euch: https://www.computerhilfen.de/hilfen-64-426312-0.html

rudolfkoenig

Ich hoer das zum ersten mal.
Ich wuerde FHEM abschiessen, in fhem.cfg "attr global verbose 5" setzen, FHEM neu starten, und danach das logfile pruefen.

nicor2k

Im "normalen" Log-file (ohne verbose 5) ist nichts ungewöhnliches zu erkennen, ist ja auch noch fast leer, da frisch installiert... :)

Mit einem "kill PROZESSID" oder "killall perl" komme ich nicht weiter, der Prozess lässt sich anscheinend nicht beenden (kommt aber keine Fehlermeldung). Kann ich das "verbose 5" einfach über die Konsole in die fhem.cfg schreiben und dann neustarten?


Kann es sein, dass auf dem alten (funktionierenden) RasPi eine ältere Raspbian Version mit älterem Perl läuft als auf dem neuen? Kann ich erst später prüfen - aber kann es an so etwas liegen?

nicor2k

#3
Komischerweise läuft es jetzt, nachdem der Rechner die Nacht über aus war...
Perl ist im Moment in der Top-Liste gar nicht mehr zu sehen...

Aber: Die installierten Perl-Versionen sind tatsächlich unterschiedlich: Perl 5.14.2 auf dem Rechner, der seit langem läuft und Perl 5.20.2 auf dem neuen Rechner...

Ich werde das mal weiter beobachten :)


edit:

Leider zu früh gefreut, nach kurzer Zeit ist der Server-Load wieder auf 100.0% gestiegen und die Seite wird im Browser wieder nicht geöffnet :(

Wernieman

Also die Perl-Version würde ich jetzt erst mal nicht als Ursache erkennen. habe hier auch eine 5.20.2 laufen, allerdings x86

Hast Du Zusätzliche Perl-Module aus Nichtpacketquellen installiert?
- 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

Starkstrombastler

Hallo,

ich habe seit heute ein ähnliches Problem.
Nache dem Update des Ubuntu läuft perl mit 99% Systemlast. Ich kann es auch nicht via kill abschießen.
Meine fhem-Startseite ist nicht erreichbar. 

Wie kann ich den Rechner starten, ohne perl zu starten? Ich würde dann alle Schritte manuell ausführen.


IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

nicor2k

Ich habe mich an die oben verlinkte FHEM Anleitung gehalten - und auf 2 anderen PIs mit dem älteren Wheezy lief es problemlos. Ob es an Perl liegt, weiß ich nicht, dass war nur eine Vermutung, weil es für FHEM ja dringend nötig ist und eine andere Version.

Ich habe das Problem gelöst, indem ich alles platt gemacht habe und Raspbian mit Wheezy installiert. Jetzt geht es :-)

r0br0ck

Hallo,

kann das nur bestätigen. Hatte mit Jesie auch 100% CPU Last auf einem RPI2.
Nach dem flashen von Wheezy läuft wieder alles.

LG

MarioR

Hallo Zusammen,
gibt es inzwischen eine Lösung für dieses Problem ? Oder muss ich downgraden auf Wheezy ?

Ich muss demnächst mein FHEM von der Fritzbox werfen (also update einspielen), sonst funktioniert angeblich mein Internetzugang nicht mehr.
Auf dem RaspberryPi habe ich nach dem Booten 100% CPU durch Perl, wenn ich den den Prozess kille und FHEM neustarte scheint alles normal zu laufen.

Wernieman

- 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

MarioR

Hallo,
jetzt kommt leider mein (noch) nicht vorhandenes Wissen auf dem RaspberryPi, auf der Fritzbox hat ja immer alles einfach funktioniert.

Auf dem Raspberry

gibt es in

etc/init.d/

fhem


Das ist wohl der Autostart ?

Wernieman

Wenn es ein Debian basiertes Linux ist kannst probieren:
update-rc.d fhm remove

Damit wird erstmal fhem aus dem Autostart rausgenommen.
Anschließend kannst Du probieren, ob ein manueller Start funktioniert, also in der Console:
/etc/init.d/fhem start

Bitte prüfe dabei parallel (z.B. in einem 2. Fenster) die CPU-Auslastung (am besten mit "top")
- 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

MarioR

Wenn ich es aus dem Autostart rausnehme und mit /etc/init.d/fhem start von Hand starte läuft es.
In top ist dabei nichts auffällig.

MarioR

Scheint ein Timing-Problem zu sein ?!
Ich habe jetzt in /etc/init.d/fhem

nach
        echo "Starting fhem..."
folgendes eingefügt
        sleep 20s

Jetzt bleibt er beim booten nicht mehr hängen und perl taucht in top nicht mehr auf.

Wernieman

Alternativ kannst Du probieren, die "Dependencies" zu ändern,

also folgende Zeile anpassen:
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs


z.B. könntest Du probieren, es nach dem Netzwerk starten zu lassen

Alternativ, es per "/etc/rc.local" zu starten, habe es bei mir so gelöst.

- 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