Lösung gegen 100% CPU Auslastung von Perl und FHEM: Wenn man den Start von FHEM verzögert, kann dies gegen die Voll-Auslastung des Raspbian Systems helfen, so dass FHEM wieder normal funktioniert!
Der Smart Home Server FHEM hat nämlich manchmal Probleme mit der Raspbian Version "Jessie": Diese baut auf neueren Kernel-Modulen auf als die ältere Version "Wheezy", die im März 2015 veröffentlicht wurde.
Neu ist aber auch die installierte Perl Version: Anstatt 5.14.2 (perl 5, version 14, subversion 2) ist die neuere Version 5.20.2 (perl 5, version 20, subversion 2) installiert.
(Die installierte Perl Version erhält man mit der Eingabe perl -v).
Im Test mit zwei Raspberry Pi 2 Modellen und einem frisch installierten Raspbian Jessie System verbrauchte Perl mit dem FHEM Prozess kurz nach dem Neustart immer knapp 100% CPU Last - so war der Raspberry aber nicht mehr in der Lage, die FHEM Webseite auszuliefern oder Eingaben anzunehmen.
Aber auch mit dem Raspberry Pi 4 kann es zu den Problemen kommen, dass Perl noch über 50% CPU Last hat und so den Pi langsamer (und wärmer!) werden lässt. Daher hilft aber auch dieser Tipp, mit dem wir die 100 Prozent CPU Auslastung von Perl und FHEM beseitigen konnten: Mehr dazu am Ende dieses Beitrags!
Lösung: Das hilft gegen die 100% CPU Auslastung!
Der Tipp stammt von unserem Leser Thomas k. (siehe nächste Antwort) und funktioniert bei uns auf einem Raspberry 2, 3 und 4. Dabei half es, den Start von FHEM um 5 bis 10 Sekunden zu verzögern: Anschließend gab es kein Problem mehr mit einer zu hohen CPU Auslastung durch Perl und FHEM reagierte wieder.
Dazu meldet man sich lokal oder per SSH am Raspberry an und editiert das Start-Skript von FHEM:
sudo nano /etc/init.d/fhem
Hier sucht man die Zeile:
perl fhem.pl fhem.cfg
und fügt davor diesen Code als neue Zeile ein:
sleep 10
Wie es aussieht, zeigen wir hier unten im nächsten Bild: Zum Vergrößern einfach anklicken!
Mit STRG + O speichert man die Datei, mit STRG + X kann man den Editor beendet. Mit diesem Befehl startet man anschließend den Raspberry wieder neu:
sudo reboot