[gelöst] 100% CPU bei Start von zigbee2mqtt

Begonnen von 87insane, 07 Dezember 2024, 23:22:12

Vorheriges Thema - Nächstes Thema

87insane

Guten Morgen zusammen,

nachdem ich nun x Dinge probiert habe, habe ich die Lösung hierfür.
Ich hatte wegen des 98_vitconnect Moduls in der letzten Woche auch schon ein Thema gehabt mit 100% CPU Last. Hierzu hatte ich Fhem im Debug Modus benutzt um zu schauen woran es liegt. Das Thema war schnell gefunden.

Nach einem letzten Neustart hatte ich dann aber ohne dieses Modul auch wieder 100% (siehe oben).

Nun durfte ich feststellen, dass der DEBUG Modus von FHEM das Gerät global auf verbose 5 stellt und das LogFile entfernt. Dies sollte der DEBUG Modus beim beenden auch wieder rückgängig machen. Hat er aber nicht.
Resume: Immer wenn ich z2m einschalte kommt dermaßen viel rein, was zum einen auch wieder notifys/doifs triggern soll aber eben an sich auch verarbeitet wird. Verbose 5 zurück auf 2 und das Logfile eingetragen und alles ist wieder wie es sein soll. Bin nun wieder bei max 20% CPU Last.

Das hat mich nun sehr viel Lebenszeit gekostet und vor allem gibt es nur eine sehr kurze Wiki, in der so Kleinigkeiten beschrieben sind. Ich finde dort sollte der Hinweis mit unter den DEBUG Modus. Hinzu würde ich mir eine Art Sammlung wünschen. Ich habe x Dinge gegoogelt, wie man in FHEM wieder zum Ziel kommt. Es gibt diverse Seiten, auch hier im Forum wo immer mal wieder irgendein Befehl steht, den man für die Suche bei Fehlern nutzen kann. Zum einen auf CMD Ebene aber auch auf FHEM Seite selber.
Ich persönlich kenne Linux ja zum Glück ein wenig. Was machen aber Personen die ggf. neu sind? Ich denke für jeden dieser Menschen wird das schnell zu Frust.
Gleiches gilt für Berechtigungen. Welche Brauch z.B. FHEM in welchem Ordner? Das ist an sich relativ einfach aber auch hier gibt es nicht einfach 755 auf alles. ../fhem/.ssh sollte mindestens auf der id_rsa 600 besitzen.
Ich bin gerne bereit hier mal aufzuschreiben, was ich so weiß bisher. Allerdings würde ich das nicht alleine machen wollen, bevor etwas davon nur die halbe Wahrheit ist und noch mehr Stress verursacht.

Mein Thema stelle ich nun auf gelöst und sage ein dickes DANKE an alle Helfer :)

Gruß,
87Insane

Otto123

Schön dass Du es gelöst hast, aber mir klingt das irgendwie unlogisch. Zumal es nicht Deine Aussage von oben erklärt?
Zitat von: 87insane am 09 Dezember 2024, 11:14:35Ich sehe leider nur den FHEM-perl Prozess der auf 100% springt. Wenn man z.B. die z2m Instanz wieder stoppt, bleibt der Prozess weiterhin auf 100%.
Wieso bleibt die Last oben wenn die auslösende Datenquelle abgeschaltet wurde?

Verbose 5 in global schreibt doch lediglich alles ins LogFile, es ändert an der Belastung in der Verarbeitung nicht unbedingt etwas, es sei denn man verarbeitet das LogFile extra.
Für die Tatsache, dass die Einstellung vom Debug Modus anschließend in der fhem.cfg verewigt ist, gibt es mMn nur eine Erklärung: Man hat im Debug Modus save gedrückt bzw. es wurde (automatisch durch ein Device?) ausgeführt.

Ich fürchte es schlummert noch ein Problem im Verborgenen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

87insane

Ich denke ich habe einfach nicht lange genug gewartet, nach abschaltet der z2m Instanz. Meist habe ich dem ganzen beim testen ca. 3-4 Min gegeben.

Das ich in dieser Zeit Save gedrückt habe, kann ich nach den ganzem Testen nichtmal abstreiten. Wenn man FHEM im Debug startet, wird alles über die Konsole ausgegeben. Denke daher nimmt er das LogFile Temporär rauß und verbose auf 5. Was in dem Fall ja sogar Sinn macht.

Ich lasse es erstmal auf gelöst. Habe zum testen x mal neu gestartet und immer wieder z2m aus/an geschaltet. Ich denke das ist erstmal ok. In jedem Gerät, was ich besitze habe ich z.B. mindestens event-on-change an. Wenn ich das nicht machen würde, wäre der PI mit dem ganzen Zeugs drauf, sicher auch zum lahm. Daher kann ich mir schon vorstellen, dass die Verarbeitung der ganzen Ausgaben Probleme macht. Hinzu weiß ich nicht ob die Ausgaben, die über Verbose 5 in global kommen auch nochmal irgendein notify triggern. Könnte ja sein, dass dies auch als normales event gewertet wird?

Stellt der Debug Modus noch mehr um als global verbose 5 und Logfile auf -?

Otto123

Zitat von: 87insane am 10 Dezember 2024, 12:25:08Stellt der Debug Modus noch mehr um als global verbose 5 und Logfile auf -?
Soweit ich den Code in fhem.pl verstehe ist es genau dies :)
3203     if($fhemdebug && $sdev eq "global") {
3204       $attrVal = "-" if($attrName eq "logfile");
3205       $attrVal = 5   if($attrName eq "verbose");
3206     }
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz