plotembed=2 und plotfork=1, FHEM steht

Begonnen von stefanru, 31 Oktober 2021, 19:23:12

Vorheriges Thema - Nächstes Thema

stefanru

Hi,

seit dem ich letztens mal wieder FHEM upgedatet habe, habe ich auf einmal ein stehendes FHEM gehabt über mehrere Sekunden, bis Minuten.
Ich habe dann bemerkt, dass es auf den Seiten mit vielen Plots auftritt.
Auf der Console konnte ich sehen, dass die Plots in eigenen FHEM Instanzen berechnet wurden.
Die Plots wurden schnell angezeigt, aber die Instanzen liefen weiter.
Erst als sich dann nach einiger Zeit die Instanzen beendeten, reagierte FHEM wieder.

Die Einstellungen von PlotEmbed = 2 und PlotFork = 1 waren auch vor dem Update so drin.
Ich dachte dann erst, dass es zu viele Daten sind und habe die DB gewalltig aufgeräumt.
Das hat aber nichts gebracht.
Die paralellen Jobs liefen immer noch im Hintergrund gefühlt ewig obwohl die Plots schon fertig angezeigt wurden.

Ich habe nun aus lauter Verzweifelung PlotFork auf 0 gesetzt und nun ist das Problem weg.

Ich würde aber gerne verstehen was mein Problem ist.
Was machen die Jobs in der Zeit wenn der Plot schon auf dem Bildschirm ist?
Lädt er historische Daten schon vor? Gibt es dafür einen Schalter?

Ich habe einen Raspberry PI3. Vorher hatte ich das nie bemerkt.
Eventuell ist er mit den vielen Prozessen und dem zusätzlichen Speicher überfordert.
Aber warum trat das nach dem update auf? Ich schätze mal mein FHEM war maximal 4 Monate nicht geupdated worden.

Gruß und Danke,
Stefan

rudolfkoenig

Die parallele Berechnung der Plots in FHEM hat einen langen Weg hinter sich, und die Voreinstellung hat sich geaendert, jenachdem ob ich den Schutz von Rechner mit wenig Resoourcen oder die schnelle Erstellung der Plots als wichtiger empfunden habe.

Die aktuelle Voreinstellung rechnet die Plots auf einem Rechner mit mehr als einem Prozessor parallel.
plotEmbed=2 oder(!) plotfork=1 bewirken das parallele Berechnen auch auf einem Rechner mit einem CPU (bzw. unter Windows, wo ich Anzahl der CPUs nicht rauskriege). polotfork=0 unterbindet die parallele Berechnung.

Die ueblichen Browser starten bis zu 6 Verbindungen zu einem Host, und da wegen longpoll eine belegt ist, werden bei einer Seite mit vielen Plots 5 weitere FHEM-Prozesse geforkt.
Je nach Groesse des FHEM Prozesses bzw. RAM der Rechner kann das zu Swappen fuehren, was das beobachtete Verhalten erklaert.

Da ich an plotfork/plotEmbed gefuehlt seit einem Jahr nichts geaendert habe, wird vermutlich einer der anderen Module mehr Speicher als bisher verbrauchen. Oder einer der anderen Prozesse verbraucht mehr Speicher als zuvor.

stefanru

Hi Rudolf,

Danke für deine Antwort.
Ja das könnte sein. Habe etwas mehr Dinge laufen auf dem Raspberry.

Ein Frage, gäbe es eine Möglichkeit die Anzahl der parallelen Prozesse zu begrenzen?
6 ist etwas viel für einen Raspberry PI3.
Ist aber nur ne Frage und auch ziemlich unwichtig, da es mit plotfork 0 sehr zügig geht.

Danke und Gruß,
Stefab

rudolfkoenig

ZitatEin Frage, gäbe es eine Möglichkeit die Anzahl der parallelen Prozesse zu begrenzen?
Ich war bis vor kurzem der Ansicht, dass ja, ueber die Methode, die BlockingCall verwendet. Diese Methode generiert "Muell", falls einer der Plots laenger als 90 Sekunden fuer die Berechnung braucht, deswegen empfehle ich sie nicht.

Ich habe gerade festsgestellt, dass diese Methode aktuell nicht aktivierbar ist :|
Die Antwort ist also: nein.

stefanru

Ok, alles klar.
Wie gesagt kann ohne Parallelisierung gut leben.
Irgendwann soll eh ein Raspberry PI4 mit genügend RAM oder besser her ;-)
Danke für die Antwort.

Gruß,
Stefan