93_DbLog - Umstellung Log-Funktion auf non-blocking

Begonnen von DS_Starter, 18 Dezember 2016, 20:03:56

Vorheriges Thema - Nächstes Thema

Tedious

Zitat von: DS_Starter am 26 Januar 2017, 21:20:52

@Tedious ... anbei habe ich eine V2.10.7 angehängt. Teste mal bitte ob im synchronen Modus dein Problem nun erledigt ist.

Grüße
Heiko

Danke,

teste ich heute abend mal an. Asyncron gabs zumindest bislang keine Anstürze und keine Fehler im Log.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

pc1246

Hallo Joe
Sorry, aber das hatte ich wirklich so nicht gelesen. Danke, dann kann ich ja nachher loslegen.
By the way, wenn Deine DB 24GB gross ist, worauf hast Du die denn am RPI?
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

JoeALLb

Zitat von: pc1246 am 27 Januar 2017, 11:49:02
By the way, wenn Deine DB 24GB gross ist, worauf hast Du die denn am RPI?
Auf der SD-Karte, 64GB! (Wenn das die Frage war). Warum?
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

pc1246

Weil mir schon mal eine im RPI gestorben ist, da hatte ich allerdings auch noch filelog!
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

JoeALLb

Darum nutze ich partitionen in mysql. So wird jeden Wochentag eine andere Tabelle geschrieben, das entlastet die Speicherkarte enorm.
Ich hatte auch mit einer Partition pro Jahrestag (also 365) experimentiert, dabei ist der RPI bei extrem großen Abfrahen jedoch an sein Ram-Limit gestoßen.
Das neue async=1 hilft zusätzlich immens, und ich bin richtig dankbar dass Heiko das hier implementiert hat.
Mein erster RPI läuft seit 4 Jahren ohne Reboot des Systems (fhem wurde natürlich mal aktualisiert).
Dennoch... ein Backup benötigt man immer, einer SD-Karte würde ich auf Dauer niemals trauen.
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

stromer-12

Hallo,

Zitat von: JoeALLb am 27 Januar 2017, 11:06:53
Ok, #448 https://forum.fhem.de/index.php/topic,62998.msg568302.html#msg568302
war nicht nur an Daniel gerichtet, sondern auch als Idee für Dich!
Es ist ein Versuch, aber ich denke dass dies besser funktionieren wird.
Schau es Dir doch einfach mal an.

Beim
insert ignore into historyWORK from historyOLD;
musste ich noch ein select * einfügen.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

JoeALLb

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

Tedious

Zitat von: Tedious am 27 Januar 2017, 11:47:29
Danke,

teste ich heute abend mal an. Asyncron gabs zumindest bislang keine Anstürze und keine Fehler im Log.

Ich spiele sie mal ein. Im Log schauts zwar sauber aus, aber im Eventminitor nicht

2017-01-27 15:51:11 DbLog myDbLog DBD::mysql::st execute_array failed: executing 2530 generated 123 errors at ./FHEM/93_DbLog.pm line 1324.
2017-01-27 15:51:11 DbLog myDbLog CacheUsage: 2568
2017-01-27 15:51:11 DbLog myDbLog CacheUsage: 2568
2017-01-27 15:51:11 DbLog myDbLog NextSync: 2017-01-27 15:51:41 or if CacheUsage 500 reached

...

2017-01-27 15:51:29 DbLog myDbLog DBD::mysql::st execute_array failed: Data too long for column 'READING' at row 1 [err was 1406 now 2000000000] executing 2568 generated 124 errors at ./FHEM/93_DbLog.pm line 1324

...

2017-01-27 15:52:02 DbLog myDbLog DBD::mysql::st execute_array failed: executing 57679 generated 4013 errors at ./FHEM/93_DbLog.pm line 1324.
2017-01-27 15:52:02 DbLog myDbLog CacheUsage: 57685
2017-01-27 15:52:02 DbLog myDbLog CacheUsage: 57685
2017-01-27 15:52:02 DbLog myDbLog NextSync: 2017-01-27 15:52:31 or if CacheUsage 500 reached


Wenn nicht, muss ich aus einem alten Backup mal die passende pm ziehen. So ist das unschön, da auch dir Plots zerrissen werden.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

DS_Starter

Hi Tedious,

ZitatData too long for column 'READING'

Hast du fhem nach einspielen des Moduls restartet ?

In den Internals siehst du die verwendete Feldlänge:

COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32

Sieht mir so aus als dass dein Readingfeld nicht dem Standard 64 Zeichen entspricht.
Kannst du über Attribut anpassen bzw. in der DB auf den Standard anheben.

Grüße
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

Tedious

Hi,

klar, hatte ich. Ich hab jetzt die bereitgestellte Datei in Verwendung und den asyncronen Modus wieder ausgeschaltet. Scheint soweit erst mal zu passen, mal sehen wie es nach einer Weile ausschaut. Zumindest werden wieder Werte geschrieben.

Feldlängen sollten an sich passen:

COLUMNS

field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32


Nochmals Danke für deine Mühen!
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

stromer-12

Ich habe in mysql auf MyISAM umgestellt. Partitionen hat er angelegt, nur kann ich nicht auf eine einzelne Partition zugreifen.
Der Speicherplatzbedarf ist von InnoDB auf MyISAM um 50% zurückgegangen.
select timestamp, device, reading, value, count(*) as Nr from history group by device, reading order by Nr DESC, device;
benötigt jetzt nur noch 5min30sec anstatt 1h40min.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

JoeALLb

Na das ist doch schon mal ein passabler Wert :D
Zitat von: stromer-12 am 27 Januar 2017, 16:08:41
... nur kann ich nicht auf eine einzelne Partition zugreifen.

Warum nicht? Was ist die Fehlermeldung? Versuch mal
select timestamp, device, reading, value, count(*) as Nr from history partition(fri) group by device, reading order by Nr DESC, device;
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

stromer-12

Da kommt folgendes:
mysql> select timestamp, device, reading, value, count(*) as Nr from history partition(fri) group by device, reading order by Nr DESC, device;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(fri) group by device, reading order by Nr DESC, device' at line 1
mysql>[code/]
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

JoeALLb

ah, rückfrage:
Hast Du die Tabelle wieder zurück umbenannt oder heißt diese vielleicht noch historyWORK ?
Wenn ja, müsste es natürlich
select timestamp, device, reading, value, count(*) as Nr from historyWORK partition(fri) group by device, reading order by Nr DESC, device;
heißen...
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

stromer-12

Da kommt der Fehler ebenfalls.

mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.5.54, for debian-linux-gnu (i686) using readline 6.3

Connection id:          39
Current database:       fhem
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.5.54-0+deb8u1 (Debian)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/run/mysqld/mysqld.sock
Uptime:                 57 min 38 sec[code/]
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL