93_DbLog - Überlegungen zur Optimierung (RPI und andere Systeme)

Begonnen von JoeALLb, 27 Januar 2017, 22:16:19

Vorheriges Thema - Nächstes Thema

Loredo

Zitat von: DS_Starter am 12 April 2019, 22:49:53
Bitte aus meinem contrib laden:


Könntest ja auch die DEV Version in META.json verlinken ;)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

DS_Starter

#781
@Bernd,   
ZitatIst das attr shutdownWait nicht mehr aktiv?
Ja, das ist obsolet. Siehe den Beitrag #772

@Loredo,
ZitatKönntest ja auch die DEV Version in META.json verlinken
ah cool, das probiere ich mal aus wie das geht.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ToKa

Hallo zusammen,

die Version 3.14 läuft problemlos, bin nur über das fehlende shutdown Attribut gestolpert.

FHEMInstaller weist bei mir auf eine fehlende Perl Bibliothek hin:
Recommended
Item Type Used by
DBD::Pg Perl DbLog
These dependencies are strongly encouraged and should be installed for full functionality of the listed FHEM modules, except in resource constrained environments.


Diese lässt sich aber nicht installieren, da ich kein postgress sondern mysql verwende. Sicherlich nur ein Schönheitsfehler...

Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

DS_Starter

Moin Torsten,

Zitatdie Version 3.14 läuft problemlos, bin nur über das fehlende shutdown Attribut gestolpert.  Attribut gestolpert.
Ich vermute du meinst die 3.14.1 (?).
Ja, das Attribut shutdownWait ist obsolet geworden ... siehe oben.

ZitatFHEMInstaller weist bei mir auf eine fehlende Perl Bibliothek hin ...
Ja, das ist noch ein Unschönheit weil ich momentan in der Meta.json alle Bibliothejen angegeben habe die man für DbLog brauchen könnte, wobei ich eigentlich nur die angeben müsste die der User entsprechend seines Setup benötigt. Das weiß ich aber vorher nicht.
Vielleicht hat Loredo eine passende Idee dazu ...

Danke für deinen Test und Meldung !
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Loredo

Zitat von: DS_Starter am 14 April 2019, 12:12:17
Vielleicht hat Loredo eine passende Idee dazu ...


Darauf bin ich ja hier schonmal eingegangen.  ;)
Grundsätzlich gibt es keine "wenn dann, oder sonst" Abhängigkeiten. Es gibt nur "zwingend notwendig", "empfohlen" und "optional". Derzeit sind wohl alle Datenbank Typen als "zwingend notwendig" hinterlegt.
Der Installer würde auch alle installieren und gut ist. Das gleiche würde ich also auch dir, Torsten, empfehlen. Man muss ja nun wirklich nicht päpstlicher sein als der Papst, man redet ja hier nicht von Gigabytes mehr Daten. Ansonsten kann Heiko natürlich auch die Datenbank Typen alle oder teilweise als "empfohlen" hinterlegen. Das impliziert, dass man sie installieren _sollte_, aber nicht muss. Dass man irgendeinen davon mindestens braucht, sagt einem das Modul ja ohnehin dann schon, wenn man es benutzen will. Eine Hellsehen-Fähigkeit, wie jemand FHEM zu benutzen plant, gibts im Installer wohl nie...  ;D
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

DS_Starter

ZitatAnsonsten kann Heiko natürlich auch die Datenbank Typen alle oder teilweise als "empfohlen" hinterlegen.
Das wird wohl tendenziell das Beste sein.
Im nächsten Release ändere ich die Abhängigkeiten entsprechend ab.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

#786
Hallo zusammen,

die getestete Version 3.14.1 habe ich soeben eingecheckt und ist morgen früh im Regelupdate enthalten.

In der Zwischenzeit habe ich ein weiteres ToDo umgesetzt.
Ein User hatte angeregt die Schreibgeschwindigkeit bei Masseninserts zu beschleunigen.
Dazu habe ich die Schreibroutinen überarbeitet und einen bulkInsert-Mode implementiert. Die stark gesteigerte Schreibperformance ist besonders spürbar, wenn man die Datenbank im asynchronen Modus längere Zeit mit "reopen" geschlossen hält, d.h. wenn sich eine größere Menge Events angesammelt hat, die nach DB-Öffnung weggeschrieben werden sollen.

Um diesen Mode einzuschalten gibt es ein Attribut:

* bulkInsert

    attr <device> bulkInsert [1|0]
   
Schaltet den Insert-Modus zwischen "Array" (default) und "Bulk" um. Der Bulk Modus führt beim Insert von sehr vielen Datensätzen in die history-Tabelle zu einer erheblichen Performancesteigerung vor allem im asynchronen Mode. Um die volle Performancesteigerung zu erhalten, sollte in diesem Fall das Attribut "DbLogType" nicht die current-Tabelle enthalten.

Weiterhin habe ich noch einen Bugfix integriert der ein aufgetretenes Problem mit plotfork und MySQL behoben hat.
Siehe -> https://forum.fhem.de/index.php/topic,99719.0.html

Da sich doch recht viel geändert hat, werde ich diese Version zunächst längere Zeit zum Test aus meinem contrib zur Verfügung stellen:

https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter  (Downloadbutton benutzen)

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Pyromane

Nabend Heiko,

mein Testsystem mit der Testversion versehen.
DbLogType von SampleFill/History auf History umgestellt
bulkInsert 1 gesetzt

Grüße
Pyro

DS_Starter

#788
Nabend Pyro,

ZitatDbLogType von SampleFill/History auf History umgestellt
Das hättest du so lassen können, nur die Current sollte nicht beschrieben werden, also nicht "Current/History".

Ansonsten ok ... schauen wir mal.  :)

Gute Nacht ...
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Pyromane

Hallo Heiko,

das Testsystem hat sich absolut unauffällig verhalten.
Performacegewinn konnte ich keinen feststellen, das dürfte aber an meinem Testsystem liegen (zu wenig Datensätze die geschrieben werden nach einem Reopen).

Grüße
Pyro

DS_Starter

Moin Pyro,

danke für deine Rückmeldung.
Ja, die Performancesteigerung macht sich dann bemerkbar wenn sehr viele Daten auf einmal eingefügt werden sollen.
Also wenn sehr viele Events im Speicher gehalten wurden, z.B. weil die Verbindung zur DB geschlossen war, oder ähnliche Fälle.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Habe die getestete Version 4.1.0 soeben eingecheckt und ist morgen früh im Regelupdate entahlten.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

JoeALLb

Grüß Euch,

kann berichten, dass am RaspberryPI 3 das speichern von 300 Logs
mit langsamer SD-Karte und MariaDB (Debian) von durchschnittlich 1,2s auf die Hälfte gesenkt hat,
durch die Nutzung von blkinsert!
Sehr schönes Ergebnis, herzlichen Dank für das tolle Feature!!

Vor diesem Hintergrund halte ich das Feature durch aus auch für weniger als "sehr viele Daten" für Sinnvoll :D

Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Danke für die RückInfo Joe !
Die Ergebnisse sind offensichtlich recht unterschiedlich abhängig von der DB und der jeweiligen Umgebung.
Hauptsache es hilft und man kann Vorteile für sein FHEM generieren  :D

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

JoeALLb

Hallo Heiko,
Anbei ein Screenshot zur Veranschaulichung.
Blau die Speicherzeiten, pink Anzahl der Datensätze.

Dazwischen die Zeit des Updates...  (in der die Datensätze von 300 auf 15000 anstieg ;-)

man sieht schön, dass die blaue Linie deutlich weiter unten bleibt!!!


sG Joe

FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270