FHEM langsam bei vielen Geräten?

Begonnen von Knate, 16 Februar 2018, 11:25:04

Vorheriges Thema - Nächstes Thema

Knate

Hallo zusammen,
ich bin mir unsicher, ob das die richtige Sektion ist, habe aber keine Bessere gefunden.

Ich habe auf einem Orange PI FHEM installiert und aktuell rund 100 EnOcean Geräte verbunden.
Jetzt ist FHEM so langsam, dass z.B. das aufrufen eines Raums rund 10 Sekunden dauert. (In dem Raum befinden sich 5 Geräte)
Auch das Ansehen von Logs etc ist quasi nicht mehr möglich, weil alles sehr träge ist.
Das Schalten von Steckdosen und Lichtern funktioniert nicht mehr in Echtzeit und manchmal gar nicht mehr.

Meine Frage ist nun, woran das liegen kann?


Die Auslastung des PIs liegt immer bei rund 1/4 der Vollauslastung, also noch genug Reserven (geprüft mit dem Programm "htop").
Unter den 100 Geräten sind viele Funksteckdosen, welche jede Sekunde den aktuellen Stromverbrauch senden.
Das macht in der Summe natürlich viele Telegramme.

Kommt das Problem von FHEM, oder ist vielleicht der EnOcean PI (also die TCM Platine) schuld?
Aber dann würde FHEM die Räume ja schnell anzeigen können.


Wernieman

htop zeigt ja auch den Status der einzelnen Programme an. Steht bei FEHM=100%?
Hinweis:
Linux rechnet etwas komisch, d.h. 100% = 1 CPU auf Volllast. Ein PI mit 4 kann also 400% (theoretisch). Da FHEM in der Basis aber Single-Threaded kann es bei 100% Auslastung nicht mehr ...

Wie benimmt Sich Dein System auf der Konsole? (also putty, htop etc.)
- 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

Schau mal im Eventmonitor. Da sollte ja eigentlich ein richtiges Feuerwerk sein. Wenn dem so ist solltest Du dem einhalt gebieten.
Verwende SINNVOLL das Attribut event-on-change-reading bei jedem einzelnen Gerät.
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

Knate

Also über SSH läuft der PI wunderbar.
Die Auslastung von FHEM liegt immer bei rund 8% ohne große Ausreißer.

Ja, im EventMonitor kommen sehr viele Einträge.

herrmannj

ah, vorsichtiger Einspruch:das erzeugen von events ist keine Problem - im Gegenteil: fhem baut darauf auf.

* Die events müssen sinnvoll verarbeitet werden - eigene notify mit gut formulierten (restriktiven) regex sorgen dafür das die events nur an die Geräte gereicht werden die sie brauchen.
* Einfach mal einige DOIF gegen notify, at und watchdog tauschen.
* Mut zum Einsatz der 99_myUtils - dort lösen 2-3 Zeilen code manchmal das gleiche wie irgendein "Humba-Bumba-Super" - modul. Nur eben 1000x schneller.
* Nicht jeden Mist loggen.
* Nicht blind jedes modul installieren, und wenn die hundert mal im svn liegen.

Wenn der Aufruf eines Raumes 10 Sekunden dauert empfehle ich: alles löschen - neu von vorne. Selbstdisziplin. Weg mit unnützem Mist. 100 Device sind nix und für den Aufruf eines Raumes mit 5 Geräten (fünf!) ist die Gesamtzahl der device schon mal gleich völlig irrelevant.

betateilchen

Zitat von: CoolTux am 16 Februar 2018, 11:34:40
Verwende SINNVOLL das Attribut event-on-change-reading bei jedem einzelnen Gerät.

In meiner produktiven Installation habe habe ich ca. 300 devices, die meisten davon Homematic, verwende nirgends event-on-change-reading und habe keine Perfomanceprobleme auf einem RaspberryPI 3.

Zitat von: Knate am 16 Februar 2018, 11:25:04
Unter den 100 Geräten sind viele Funksteckdosen, welche jede Sekunde den aktuellen Stromverbrauch senden.

Die Frage ist, ob sowas überhaupt Sinn macht. Schalte doch mal EnOcean komplett ab, damit Du beurteilen kannst, wie sich Dein FHEM dann verhält. Ist Dein FHEM dann immer noch so träge, weißt du, dass es nicht an EnOcean liegen muss.

Zitat von: herrmannj am 16 Februar 2018, 11:53:47
* Einfach mal einige DOIF gegen notify, at und watchdog tauschen.

Das wollte ich nicht schreiben - aber in der Tat kann DOIF ein Performance-Killer sein.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

herrmannj

Zitat von: betateilchen am 16 Februar 2018, 11:55:24
Das wollte ich nicht schreiben - aber in der Tat kann DOIF ein Performance-Killer sein.
deswegen mach ich das ja :D (Betrifft auch weitere module). DOIF hat seine Berechtigung, ich muss aber eben nicht immer den Dynamitstange nehmen wenn es eine Nagelzange auch tut.

Knate

Also FHEM läuft ohne EnOcean wunderbar und sehr Flott.
DOIF habe ich nicht.

Aber sehr viele Notifications (die brauche ich aber auch).
Die Funksteckdosen senden jede Sekunde ein Telegramm mit dem aktuellen Stromverbrauch.
Ich versuche mal, dass Intervall auch 10 Sekunden zu erhöhen.

Benni

Zitat von: Knate am 16 Februar 2018, 11:25:04
Jetzt ist FHEM so langsam, dass z.B. das aufrufen eines Raums rund 10 Sekunden dauert. (In dem Raum befinden sich 5 Geräte)

Hast du denn in dem Raum zufällig auch Plots (SVG) zu den Geräten?

Knate

In den Räumen selbst sind keine Plots.
Die sind nur in der Hauptübersicht.