[gelöst]Besteht eine Chance, dass das 98_SVG.pm Modul Multithreading fähig wird?

Begonnen von Patrik.S, 10 März 2016, 22:11:40

Vorheriges Thema - Nächstes Thema

Patrik.S

Hallo,

da auch bei mir die Anzahl der Sensoren eher ständig zunimmt und Sinnlos alles aufgezeichnet wird, nur weil man es kann und dann alles mit einem SVG Plot darstellbar ist, habe ich nun langsam trotz Multicore CPU natürlich das Problem, das FHEM als Ganzes und die Module im speziellen noch kein Multithreading können.

Wie sieht es nun für das 98_SVG.pm und den aufrufenden JS Code im speziellen aus, ob es vielleicht mittelfristig ein Tuning bekommen könnte, so dass mehrere SVG Plots parallel erstellt werden können?

Speziell die Aufbereitung der Daten, wenn mehrere Messdaten in ein SVG Plot reinkommen könnte doch eventuell parallelisiert werden?

  ######################
  # Second loop over the data: draw the measured points
  for(my $idx=$#hdx; $idx >= 0; $idx--) {


Es sollen gar nicht alle Cores zu 100% verheizt werden.
Damit das System unter der (kurzen) Last nicht komplett ausgebremst wird, wäre ein Threading nach der Berechnung ideal:
   Wenn "Anzahl Cores > 2" dann Anzahl Threads = Anzahl Cores - 1
Dann bleibt auch immer eine CPU für andere Dinge übrig.

Wuppi68

mach doch ne 2. FHEM Instanz, wo Du die Plots vorbereitest und dann brauchst Du "nur" noch die Plots als Blink in Deine Hauptinstanz einzubinden

Du kannst auch Prozesse an einen bestimmten CPU Kern binden, kann für die Lastenverteilung manchmal nötig werden
FHEM unter Proxmox als VM

dev0

Zitatund Sinnlos alles aufgezeichnet wird, nur weil man es kann und dann alles mit einem SVG Plot darstellbar ist
Das wäre natürlich ein sehr motivierendes Argument Zeit zu investieren. Da kann man eigentlich nur Antworten: kauf dir schnellere Hardware.
fhemweb/plotfork kennst Du?

Patrik.S

Es trifft ja für die allermeisten hier zu, das viel zu viel gemessen und aufgezeichnet wird ohne es wirklich für eine Nachverarbeitung zu brauchen.
Und wer viel mist, mist Mist. Daher auch die leichte Selbstironie.

Zum eigentlichen:
Das Attribut plotfork kannte ich noch nicht  ::)
Es macht das was ich will, es wird schneller. Jetzt waren grade 6 Perl Prozesse am laufen, anstatt wie bisher nur einer.

Wunderbar 8)

Ich denke das reicht mir für's erste und Multithreading innerhalb eines Prozesses muss nicht mehr sein. Zumindest für die SVG Grafiken.