Hallo,
ich habe fhem auf einem Raspi 2 mit 4 Cores laufen.
Leider wird nur eine CPU vom Perl-Prozess genutzt (mit 100% Auslastung z.B. beim Generieren von Diagrammen).
Kann man irgendwie eine Multicore-Unterstützung in fhem aktivieren, um die volle Leistung des Raspi 2 nutzen zu können?
Meine genutzte fhem-Version:
Fhem info:
Release : 5.6
OS : linux
Arch : arm-linux-gnueabihf-thread-multi-64int
Perl : v5.14.2
Gruß
mayerflash
Falscher Forenbereich - Rudi liest hier selten mit.
Das wird dir vermutlich aber auch betateilchen und Co erklären können - also einfach ein bischen warten auf die Antwort.
Wo hätte das deiner Meinung nach hingehört?
Mehrere Kerne werden nicht direkt unterstützt. FHEM macht alles in einem Thread. Nur speziell programmierete Module startet parallele Verarbeitung. So können z.B. mehrere Plots gleichzeitig gerendert werden.
Schau dir mal plotfork in der commandref beim Modul FHEMWEB an.
Zitat von: mayerflash am 17 Februar 2015, 20:26:02
Wo hätte das deiner Meinung nach hingehört?
In einen Bereich wo Rudi mitliest ;)
Nach meiner bescheidenen Unwissenden Meinung wäre der fhem.pl-Bereich der richtige.
Dort ist Rudi eigentlich immer am lesen.
Welcher das ist findest du in der Maintainer.txt
"plotfork 1" hat Wunder gewirkt!
Jetzt flutschen die Graphen endlich. 8)
Danke!
Bei mir Cubietruck / Cubieboard 3 ist das Rendering mit plotfork=1 langsamer..
Zitat von: derron am 17 Februar 2015, 21:14:27
Bei mir Cubietruck / Cubieboard 3 ist das Rendering mit plotfork=1 langsamer..
Hm das kann ich bei meinem Cubietruck nicht bestätigen!?
Ich habe gestern mal mit meinem BananaPi experimentiert. Auch mit plotfork=0 (das ich seinerzeit wegen Intertechno-Problemen am CUL setzen musste) geht das Aufbauen von Plots rasend schnell, verglichen mit dem Raspi.
Nun hat der Banana auch nur 2 Kerne, das heißt, es liegt nur einer brach. :D Der größte Geschwindigkeitsgewinn resultiert wahrscheinlich aus dem Zusammenspiel des alten Logdateiensystems (ohne DBlog) und der SSD am Banana. Deshalb habe ich auch diesen und keinen Raspi2 ausgewählt.
Zitat von: P.A.Trick am 18 Februar 2015, 20:34:41
Hm das kann ich bei meinem Cubietruck nicht bestätigen!?
Bei meinen 4 neuen Sysmon Charts ist es sogar so, dass bei aktiviertem Plotfork ein Chart (Stromversorgung (AC)) gar nicht zu Ende geladen wird. Es kommt quasi zum Timeout.
Hallo
ich habe auch eine Odroid C1 mit 4 Core's und hatte eine ähnliche Problematik.
Ich hatte im Log immer wieder Freez von 1-3 Sekunden.
Hintergrund ist, dass FHEM ein singlecore system ist und jedes blockende Device den Prozess anhält.
Gelöst habe ich dieses Problem folgendermaßen:
Auf meinem C1 laufen im Moment 2 FHEM Instanzen.
perl fhem.pl fhem.cfg
perl fhem.pl fhem_owx.cfg
In der Instanz von fhem_owx habe ich alle Device laufen, welche blockend sind oder längere Laufzeiten haben.
Die Kommunikation zwischen den Instanzen läuft mittels FHEM2FHEM und clonedummy (wenn nötig).
Somit habe ich eine Hauptinstanz, welche ohne Verzögerung läuft.
Theoretisch könnte man eine zusätzliche Instanz erstellen, welche nur die Plot darstellt,
und dadurch bei einer Auswertung komplette eine Core zur Verfügung hätte.
Wichtig ist nur, dass man die Ports bei den Unterinstanzen unterschiedlich einstellt,
und darauf achtet, dass keine Logfiles doppelt beschrieben werden.
Ich bin mit dieser Multiprozesslösung recht zufrieden und habe ein Hauptsystem was ohne Verzögerung reagiert.
Außerdem brauche ich keine zusätzliche Hardware und die Kommunikation läuft über den localhost.
Gruß Hannes