configDB "säubern"

Begonnen von Mitch, 04 Dezember 2014, 00:22:33

Vorheriges Thema - Nächstes Thema

Mitch

Hallo,

ich nutze jetzt schon einige Zeit die configDB "Option".

Durch viel umkonfigurieren und ändern habe ich mittlerweile 412 Versionen in der Datenbank.
Wie kann ich denn das ganze etwas "säubern"?

Mein fhem leidet anscheinend an der db Performanz.

Vielen Dank!
FHEM im Proxmox Container

Klaus Rubik

Versuchs doch mit

configdb reorg <Anzahl>

Das Kommando behält nur die <Anzahl> an Versionen in der DB und löscht den Rest weg.
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS

betateilchen

#2
Wozu betreibe ich als Entwickler eigentlich den Aufwand, eine commandref zu erstellen, wenn sie nicht gelesen wird?

Die configDB ist während des Betriebs von fhem überhaupt nicht in Gebrauch. Deshalb kann ich Performanceprobleme während des Betriebs durch die Konfigurationsdatenbank eigentlich ausschließen. Die Datenbank wird beim Starten von fhem geöffnet, gelesen, und direkt wieder geschlossen.

Ausserdem ist das hier der falsche Forumbereich für Fragen zu configDB.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Mitch

Danke betateilchen  :)

@Klaus: Danke, habe ich gestern Nacht total überlesen. Hab es jetzt durchgeführt und mit einem at eingebaut.
Siehe da, fhem läuft um einiges performanter (für betateilchen).
FHEM im Proxmox Container

betateilchen

Zitat von: Mitch am 04 Dezember 2014, 09:18:51
Siehe da, fhem läuft um einiges performanter

aber nicht, weil Deine configDB jetzt kleiner ist. Das wirkt sich - wenn überhaupt - ausschließlich beim Starten von fhem aus.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Mitch

Ich erkläre es mir dadurch, dass einfach die SQL db ziemlich voll war (insgesamt) und jetzt mit "säuberung" aller tabellen performanter ist.
FHEM im Proxmox Container

betateilchen

Nochmal: die SQL Datenbank liegt zur Laufzeit Deines fhem einfach auf Deiner Festplatte rum wie jede andere Datei auch. Es erfolgt kein Zugriff auf die Datenbank, nachdem fhem gestartet wurde. Es sei denn, Du selbst schreibst regelmäßig irgendwas in die Konfigurationsdatenbank. (Gerüchteweise soll es beispielsweise Leute geben, die alle zwei Minuten ihr Statefile schreiben).
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

RoBra81

Ich weiß ja nicht, ob das möglich ist, aber vielleicht verwendet Mitch ja für ConfigDB und LogDB die gleiche Datenbank...

Mitch

Zitat von: betateilchen am 04 Dezember 2014, 10:43:31
Es sei denn, Du selbst schreibst regelmäßig irgendwas in die Konfigurationsdatenbank
Ich gehöre wohl zu dieser "Randgruppe"  ;D

bzgl. Datenbank, ich habe halt einen MySQL Server auf meinem Linux Server, der auch fhem Server ist und dort zwei Datanbanken (configdb und DBLog).

Insgesamt finde ich schon, dass das System langsamer geworden ist, seit ich auf SQL umgestellt habe.
Ich logge auch nicht wirklich viel, konfiguriere (defniere und lösche) aber sehr viel und sehr oft.

Wenn ich etwas mit der DB mache und top aufrufe, sehe ich auch, wie SQL extrem hoch geht.
Kann man denn an MySQL noch etwas "tunen"?
FHEM im Proxmox Container

betateilchen

Zitat von: Mitch am 04 Dezember 2014, 00:22:33
Durch viel umkonfigurieren und ändern habe ich mittlerweile 412 Versionen in der Datenbank.
Wie kann ich denn das ganze etwas "säubern"?

Die configdb kennt übrigens schon sehr lange ein eigenes (nicht dokumentiertes) Attribut "maxversions", mit der sich die Anzahl der in der Datenbank gespeicherten Versionen dauerhaft begrenzen läßt.

configdb attr maxversion 5

sorgt dafür, dass maximal fünf vorhergehende Versionen gespeichert werden. Beim Speichern einer sechsten Version wird automatisch die älteste gelöscht.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Mitch

Super, vielen Dank!

Habst direkt "eingebaut".

BTW: im Moment läuft fhem wieder 100% stabil mit configdb und dblog.

Ich vermute fast, es lag am Sonos Modul.
FHEM im Proxmox Container

dlehmann69

Hallo,

ich habe es auch einmal getestet. Bei mir funktioniert aber nur

configdb attr maxversions 5

Beste Grüße
Dirk
FHEM 6.0 Development auf Ubuntu 20.04 GIGABYTE GB-BACE mit Intel(R) Celeron(R) CPU N3150
CUL 3.4 FW 1.53 868 MHz für FS20, FHT
CUL 3.4 FW 1.66 868 MHz für HM
configDB; DbLog
FHT80, FS20, HMS, EM1000WZ, FHTTF, HM-LC-Sw1-DR; Lightify; HM-CC-RT-DN; HM-TC-IT-WM-W-EU; HM-SEC-SCO

betateilchen

Zitat von: dlehmann69 am 07 Januar 2015, 10:06:57
ich habe es auch einmal getestet.

Was getestet?

Zitat von: dlehmann69 am 07 Januar 2015, 10:06:57
Bei mir funktioniert aber nur

Was bedeutet in diesem Zusammenhang "nur" ?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

volschin

Er meint das fehlende "s".  ;)
Intel NUC+Ubuntu 24.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7690, Echo Dots+Show8, HomeBridge

dlehmann69

Genau. Ich meinte das fehlende "s". Ohne dieses werden keine alten Einträge gelöscht.
FHEM 6.0 Development auf Ubuntu 20.04 GIGABYTE GB-BACE mit Intel(R) Celeron(R) CPU N3150
CUL 3.4 FW 1.53 868 MHz für FS20, FHT
CUL 3.4 FW 1.66 868 MHz für HM
configDB; DbLog
FHT80, FS20, HMS, EM1000WZ, FHTTF, HM-LC-Sw1-DR; Lightify; HM-CC-RT-DN; HM-TC-IT-WM-W-EU; HM-SEC-SCO