Unterstützt fhem mehrere CPU's (multicore)?

Begonnen von mayerflash, 17 Februar 2015, 20:16:19

Vorheriges Thema - Nächstes Thema

mayerflash

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

Puschel74

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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

mayerflash

Wo hätte das deiner Meinung nach hingehört?

hexenmeister

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.

peterchen89

Schau dir mal plotfork in der commandref beim Modul FHEMWEB an.
FHEM 5.5 auf HP ProLiant MicroServer G7 N54L 8 GB Ubuntu 14.04 LTS.
1x HM-CFG-LAN, 1x HM-CFG-USB, 7x HM-CC-RT-DN, 5x HM-SEC-SC-2, 1x HM-SEC-SCo, 2x HM-TC-IT-WM-W-EU, 2x HM-LC-Sw1-Pl, 2x HM-ES-PMSw1-Pl, 4x HM-PB-2-WM55-2, 1x HM-PB-6-WM55, 1x HM-WDS10-TH-O, 1x CUL433, 6x Pollin Funksteckdose

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

mayerflash

"plotfork 1" hat Wunder gewirkt!

Jetzt flutschen die Graphen endlich.   8)

Danke!


FHEMAN

Bei mir Cubietruck / Cubieboard 3 ist das Rendering mit plotfork=1 langsamer..
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

P.A.Trick

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!?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

topfi

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. 

FHEMAN

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.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

AHA1805

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
AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)