DBRep-MySQL Backup produziert bei mir viele Fhem Hänger

Begonnen von Rewe2000, 05 Mai 2020, 18:20:14

Vorheriges Thema - Nächstes Thema

DS_Starter

Das Wiki ist jetzt um den Part FILE Privileg ergänzt. Kannst ja mal schauen ob es auch Anwendersicht auch klar verständlich ist.

LG,
Heiko
Proxmox+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

Rewe2000

Hallo Heiko,

ich denke die Doku im Wiki ist verständlich gehalten. Selbst ich würde es mit dieser Anleitung schaffen. :)

Ich habe mein "FILE Privileg" über die Console, unter MariaDB gesetzt, habe garnicht daran gedacht, dass ich es auch mit "sqlCmd" über DBRep erledigen konnte.

Heiko noch eine Frage drängt sich mir auf, in Zusammenhang mit DBRep.
Ich verwende DBRep derzeit intensiv zur Auswertung meines neuen E3DC Stromspeichers und habe dazu einige DbRep Devices angelegt, welche mir unterschiedliche Ergebnisse aus den Readings berechnen. Da sich aber alle DbRep Device aktiv mit der SQL-Datenbank verbinden, gibt es da deiner Erfahrung nach eine Grenze, wo es bezüglich des Speicherverbrauchs (Raspi3) kritisch wird?
Bei mir sind aktuell 20 DbRep Device mit der Datenbank verbunden, welche ich nur äußerst "sparsam" über at Devices starte.

Jedes Device belegt ja vermutlich Speicher, egal ob dieses aktuell läuft oder nur "wartet".

Ich habe jedenfalls noch keine Möglichkeit gefunden die Attribute dynamisch (über Variablen) an das DbRep Device zu übergeben, dann würden man ja mit deutlich weniger auskommen.

Gerne mach ich dazu auch einen neuen Forenbeitrag auf, wenn das hier viel OT wird

Gruß Reinhard

Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

DS_Starter

Hallo Reinhard,

ZitatDa sich aber alle DbRep Device aktiv mit der SQL-Datenbank verbinden, gibt es da deiner Erfahrung nach eine Grenze, wo es bezüglich des Speicherverbrauchs (Raspi3) kritisch wird?

bei mir laufen 127 produktive DbReps. Grenze nach oben theoretisch offen.
Das aktive Verbinden ist nur temporär solange das Device auf der DB werkelt. Wenn die Aufgabe fertig ist, wird die Verbindung zur DB abgebaut. Ich habe bei allen DbReps das Attribut "fastStart = 1" gesetzt. Dadurch verbinden sich die Devices beim Start von FHEM nicht gleichzeitig alle, sondern erst wenn sie eine Aufgabe abarbeiten müssen.
Ich überlege diese Einstellung zum Default zu machen.

Einstellung geht für alle in einem Rutsch leicht:

attr TYPE=DbRep fastStart 1

Wirklich Speicher wird nur während der Arbeit in den Nebenprozessen (BlockingCall) verbraucht. Es gibt aber ein globales Attribut blockingCallMax mit dem man einer zu hohen System RAM-Auslastung vorbeugen kann:

blockingCallMax
Begrenzt die Anzahl der parallel laufenden Prozesse, die von der BlockingCall FHEM Hilfsroutine gestartet wurden. Sinnvoll auf weniger leistungsfaehigen Hardware, die Voreinstellung ist 32. Nach erreichen dieser Grenze werden weitere Aufrufe verzögert.


Das wirkt dann für alle, denn nicht nur DbRep verwendet BlockingCall um nebenlaufende Prozesse zu starten.
Richtig eingestellt, kannst du m.M. nach dein System vor Überlastung schützen. Mit Verzögerungen beim Start einer Aufgabe kann man  sicherlich leben.

Ansonsten wird Speicher im Prinzip nur durch die entstehenden Readings verbraucht. Also wenn man z.B. eine Ergebnismenge von 1000 / 2000 Readings hat (fetchrows), wird natürlich Speicher verbraucht.
Aber auch das kann man wieder beseitigen. Wenn du diese Daten nur temporär brauchst, kannst du die Readings mit dem Setter "eraseReadings" wieder loswerden und der durch die Readings belegte Speicher wird an Perl zurück gegeben.

Das sind eigentlich die "Highlights" zu diesen Überlegungen.  :)

LG,
Heiko
Proxmox+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

Rewe2000

Hallo Heiko,

danke für die vielen Tipps, ich setze diese in meiner Konfiguration um.

Ich will nur aktuell nicht mehr viel an den Einstellungen ändern, da mein Fhem in nächsten Wochen ohne Aufsicht laufen soll (Urlaub wird in DE wieder möglich :).
Nichts schlimmer als wenn man vorher noch Änderungen tätigt oder Updates fährt, welche an anderer Stelle dann zu Problemen führen.
Nachdem die Hänger nun, durch die Umstellung des Dumps auf serverSide verschwunden sind, ist bei mir (derzeit) alles im grünen Bereich.

Aber ich wende die Tipps in jeden Fall bei meiner Konfiguration an, "fastStart" habe ich bei allen DbReps schon gesetzt.


Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky