Re: [vz-users] ständig Gateway Timeout - Performance DB steigern

2021-04-13 Diskussionsfäden Rupert Schöttler
Servus René,


vielleicht habe ich jetzt mit meiner Fragerei Verwirrung gestiftet. Du
schreibst im OP:

> Mein Setup sieht folgendermaßen aus. USB-IR -> Raspberry 3B+ ->
> Synology NAS
>
> Das sollte doch eigentlich den Pi entlasten. Auch habe ich bereits die
> manuelle Aggregation per Hand durchgeführt mit
> /php /var/www/volkszaehler.org/bin/aggregate run -m full -l day -l
> hour -l minute/
>
Das bedeutet doch, auf dem Pi3B läuft vzlogger und auf dem NAS die
Middleware und die Datenbank. Richtig?


Und dann:

Am 12.04.21 um 20:08 schrieb René W.:
>
> Moin Rupert,
>
>  
>
> hier die Ausgabe:
>
>  
>
> pi@raspberrypi:~ $ crontab -l
>
> # Volkszaehler
>
> */10 * * * *  flock -n /tmp/flock-vz_aggregate.lock php
> /var/www/volkszaehler.org/bin/aggregate run -m delta -l minute >/dev/null
>
> 1 * * * *  php /var/www/volkszaehler.org/bin/aggregate run -m delta -l
> hour >/dev/null
>
> 0 1 * * *  php /var/www/volkszaehler.org/bin/aggregate run -m delta -l
> day >/dev/null
>
>  
>
> Ansonsten scheint die Long query log erstmal ruhig zu sein.
>
> Htop vom Pi ist sehr ruhig auch beim laden des Frontend. Da röderlt
> das NAS wesentlich mehr aber auch im Rahmen. CPU bei Abfrage 80% dann
> runter auf 15%. RAM liegt bei 60%.
>
Warum laufen die Aggregationsskripte auf raspberrypi, wenn die DB auf
dem NAS liegt? Macht es nicht mehr Sinn, die Aggregation auf dem NAS
laufen zu lassen, so dass die Daten nicht auch noch übers Netzwerk
müssen? Oder geht das bei einem NAS nicht? (Ich kenn' mich mit NAS nicht
aus, habe meine MariaDB auf einem RPi -- gemeinsam mit der Middleware.)

Die PHP-Aufrufe an sich sind ok (-m delta ! :-).


Gruß von Lech und Wertach

Rupert



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [vz-users] ständig Gateway Timeout - Performance DB steigern

2021-04-12 Diskussionsfäden René W .
Moin Rupert, hier die Ausgabe: pi@raspberrypi:~ $ crontab -l# Volkszaehler*/10 * * * *  flock -n /tmp/flock-vz_aggregate.lock php /var/www/volkszaehler.org/bin/aggregate run -m delta -l minute >/dev/null1 * * * *  php /var/www/volkszaehler.org/bin/aggregate run -m delta -l hour >/dev/null0 1 * * *  php /var/www/volkszaehler.org/bin/aggregate run -m delta -l day >/dev/null#* * * * *  sudo perl /root/bin/get1wire.pl >/dev/null 2>&1You have new mail in /var/mail/pi Und hier die new mailpi@raspberrypi:/var/mail $ tail piIn PDOStatement.php line 117:  SQLSTATE[22012]: Division by zero: 1365 Division by 0run [-l|--level LEVEL] [-m|--mode MODE] [-p|--periods PERIODS] [-v|--verbose] [--] [...] Ansonsten scheint die Long query log erstmal ruhig zu sein.Htop vom Pi ist sehr ruhig auch beim laden des Frontend. Da röderlt das NAS wesentlich mehr aber auch im Rahmen. CPU bei Abfrage 80% dann runter auf 15%. RAM liegt bei 60%. Bin erstmal ratlos. Gateway timeout nachwievor. Gruß Von: Rupert SchöttlerGesendet: Samstag, 3. April 2021 16:52An: volkszaehler-users@demo.volkszaehler.orgBetreff: Re: [vz-users] ständig Gateway Timeout - Performance DB steigern Hallo René,Am 03.04.21 um 12:05 schrieb René W.:Hier das Ergebnis aus der Log. Ergebnis tritt ca. alle 20 Minuten auf. REPLACE INTO aggregate ... Auch habe ich bereits die manuelle Aggregation per Hand durchgeführt mitphp /var/www/volkszaehler.org/bin/aggregate run -m full -l day -l hour -l minute  Sollte also klappen. Auch die regelmäßige Aggregation ist im cronjob hinterlegtWie schaut Deine crontab aus ($ crontab -l)? Lässt Du möglicherweise alle 20 min eine vollständige Aggregation laufen? Was wäre keine gute Idee, insbesondere bei Deiner großen Datenbank.Was beschäftigt den Pi denn so ($ top)? Gruß von Lech und WertachRupert 


Re: [vz-users] ständig Gateway Timeout - Performance DB steigern

2021-04-03 Diskussionsfäden Rupert Schöttler
Hallo René,

Am 03.04.21 um 12:05 schrieb René W.:
>
> Hier das Ergebnis aus der Log. Ergebnis tritt ca. alle 20 Minuten auf.
>
>  
>
> REPLACE INTO aggregate ...
>
>  
>
> Auch habe ich bereits die manuelle Aggregation per Hand durchgeführt mit
>
> /php /var/www/volkszaehler.org/bin/aggregate run -m full -l day -l
> hour -l minute/
>
>  
>
> Sollte also klappen. Auch die regelmäßige Aggregation ist im
> cronjob hinterlegt
>
Wie schaut Deine crontab aus ($ crontab -l)? Lässt Du möglicherweise
alle 20 min eine vollständige Aggregation laufen? Was wäre keine gute
Idee, insbesondere bei Deiner großen Datenbank.

Was beschäftigt den Pi denn so ($ top)?


Gruß von Lech und Wertach

Rupert



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [vz-users] ständig Gateway Timeout - Performance DB steigern

2021-04-03 Diskussionsfäden René W .
Hier das Ergebnis aus der Log. Ergebnis tritt ca. alle 20 Minuten auf. /usr/local/mariadb10/bin/mysqld, Version: 10.3.24-MariaDB (Source distribution). started with:Tcp port: 3306  Unix socket: /run/mysqld/mysqld10.sockTime     Id Command Argument# Time: 210403  1:11:39# User@Host: root2[root2] @ raspberrypi [192.168.178.22]# Thread_id: 642  Schema: volkszaehler  QC_hit: No# Query_time: 1290.936163  Lock_time: 0.003416  Rows_sent: 0  Rows_examined: 6024498# Rows_affected: 0  Bytes_sent: 26use volkszaehler;SET timestamp=1617405099;REPLACE INTO aggregate (channel_id, type, timestamp, value, count) SELECT channel_id, '1' AS type, MAX(agg.timestamp) AS timestamp, COALESCE( SUM(agg.val_by_time) / (MAX(agg.timestamp) - MIN(agg.prev_timestamp)), AVG(agg.value)) AS value, COUNT(agg.value) AS count FROM ( SELECT channel_id, timestamp, value, value * (timestamp - @prev_timestamp) AS val_by_time, COALESCE(@prev_timestamp, 0) AS prev_timestamp, @prev_timestamp := timestamp FROM data CROSS JOIN (SELECT @prev_timestamp := UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(MAX(timestamp) / 1000, "%Y-%m-%d %H:%i:00"), INTERVAL 1 minute)) * 1000 FROM aggregate WHERE type = '1' AND aggregate.channel_id = '1') AS vars WHERE channel_id = '1' AND timestamp >= IFNULL((SELECT UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(MAX(timestamp) / 1000, "%Y-%m-%d %H:%i:00"), INTERVAL 1 minute)) * 1000 FROM aggregate WHERE type = '1' AND aggregate.channel_id = '1' ), 0) AND timestamp < UNIX_TIMESTAMP(DATE_FORMAT(NOW(), "%Y-%m-%d %H:%i:00")) * 1000 ) AS agg GROUP BY channel_id, YEAR(FROM_UNIXTIME(timestamp/1000)), DAYOFYEAR(FROM_UNIXTIME(timestamp/1000)), HOUR(FROM_UNIXTIME(timestamp/1000)), MINUTE(FROM_UNIXTIME(timestamp/1000)); Wer kann damit was anfangen? Von: Andreas GoetzGesendet: Freitag, 2. April 2021 07:30An: volkszaehler.org - usersBetreff: Re: [vz-users] ständig Gateway Timeout - Performance DB steigern Slow query log ist erstmal ne gute Idee, die kannst du dann mit explain plan einzeln analysieren. Viele Grüße, Andreas Am 01.04.2021 um 23:47 schrieb René W. :Hallo Zusammen, ich kann mittlerweile nur noch müßig aufs Frontend zugreifen. Erst nach mehrmaligen Laden.Firefox 87.0 (64bit)Mein Setup sieht folgendermaßen aus. USB-IR -> Raspberry 3B+ -> Synology NASDas sollte doch eigentlich den Pi entlasten. Auch habe ich bereits die manuelle Aggregation per Hand durchgeführt mitphp /var/www/volkszaehler.org/bin/aggregate run -m full -l day -l hour -l minute(Quelle: https://wiki.volkszaehler.org/howto/datenmengen) Bei der Prüfung der Aggregation habe ich:version "0.3"    capabilities    database    data      rows  48231750   size    4097835008   aggregation      rows  5486728   size    630407168   ratio  8.791 Sollte also klappen. Auch die regelmäßige Aggregation ist im cronjob hinterlegt. Vielleicht was auffälliges in der vzlogger.conf ? {  "retry": 0,  "daemon": true,  "verbosity": 0,  "log": "/var/log/vzlogger.log",  "push": [],  "local": {    "enabled": false,    "port": 8080,    "index": false,    "timeout": 0,    "buffer": 0  },  "meters": [    {  "enabled": true,      "allowskip": true,  "interval": -1,  "aggtime": 10,  "aggfixedinterval": true,  "channels": [    {  "api": "volkszaehler",  "uuid": "07689860- ", //Haus Q3D     "middleware": "http://192.168.178.22:81/middleware.php",  "identifier": "1-0:1.7.0", //Wirkleistung  1-0:1.7.0 0.2868     //"secretKey": "",  //"type": "device",      //"scaler": 1000,  "aggmode": "AVG", //"AVG", // "AVG" Der Mittelwert für Leistung, "MAX" für Zähler, "SUM" für Counter  "duplicates": 0    },    {  "api": "volkszaehler",  "uuid": "c1006760- ", //Haus Q3D     "middleware": "http://192.168.178.22:81/middleware.php",  "identifier": "1-0:1.8.0", /

Re: [vz-users] ständig Gateway Timeout - Performance DB steigern

2021-04-01 Diskussionsfäden Andreas Goetz
Slow query log ist erstmal ne gute Idee, die kannst du dann mit explain plan 
einzeln analysieren.

Viele Grüße, Andreas 

> Am 01.04.2021 um 23:47 schrieb René W. :
> 
> 
> Hallo Zusammen,
>  
> ich kann mittlerweile nur noch müßig aufs Frontend zugreifen. Erst nach 
> mehrmaligen Laden.
> Firefox 87.0 (64bit)
> Mein Setup sieht folgendermaßen aus. USB-IR -> Raspberry 3B+ -> Synology NAS
> Das sollte doch eigentlich den Pi entlasten. Auch habe ich bereits die 
> manuelle Aggregation per Hand durchgeführt mit
> php /var/www/volkszaehler.org/bin/aggregate run -m full -l day -l hour -l 
> minute
> (Quelle: https://wiki.volkszaehler.org/howto/datenmengen)
>  
> Bei der Prüfung der Aggregation habe ich:
> version "0.3"
> capabilities
>database
>data  
>rows  
> 48231750
>size
> 4097835008
>aggregation  
>rows  
> 5486728
>size
> 630407168
>ratio  
> 8.791
>  
> Sollte also klappen. Auch die regelmäßige Aggregation ist im cronjob 
> hinterlegt.
>  
> Vielleicht was auffälliges in der vzlogger.conf ?
>  
> {
>   "retry": 0,
>   "daemon": true,
>   "verbosity": 0,
>   "log": "/var/log/vzlogger.log",
>   "push": [],
>   "local": {
> "enabled": false,
> "port": 8080,
> "index": false,
> "timeout": 0,
> "buffer": 0
>   },
>   "meters": [
> {
>   "enabled": true,
>   "allowskip": true,
>   "interval": -1,
>   "aggtime": 10,
>   "aggfixedinterval": true,
>   "channels": [
> {
>   "api": "volkszaehler",
>   "uuid": "07689860- ", //Haus Q3D
>  "middleware": 
> "http://192.168.178.22:81/middleware.php";,
>   "identifier": "1-0:1.7.0", //Wirkleistung  1-0:1.7.0 0.2868
>  //"secretKey": "",
>   //"type": "device",
>   //"scaler": 1000,
>   "aggmode": "AVG", //"AVG", // "AVG" Der Mittelwert für Leistung, 
> "MAX" für Zähler, "SUM" für Counter
>   "duplicates": 0
> },
> {
>   "api": "volkszaehler",
>   "uuid": "c1006760- ", //Haus Q3D
>  "middleware": 
> "http://192.168.178.22:81/middleware.php";,
>   "identifier": "1-0:1.8.0", //Gesamtleistung  1-0:1.7.0 0.2868
>  //"secretKey": "",
>   //"type": "device",
>   //"scaler": 1000,
>   "aggmode": "MAX", //"AVG", // "AVG" Der Mittelwert für Leistung, 
> "MAX" für Zähler, "SUM" für Counter
>   "duplicates": 0
> }
>   ],
>   "protocol": "d0",
>   "device": "/dev/usb-ir-lesekopf0",
>   "dump_file": "",
>   //"pullseq": "2f3f210d0a",
>   //"ackseq": "auto",
>   "baudrate": 9600,
>   //"baudrate_read": 9600,
>   "parity": "7e1"
>   //"wait_sync": "off",
>   //"read_timeout": 10,
>   //"baudrate_change_delay": 0
> },
> {
>   "enabled": true,
>   "allowskip": true,
>   "interval": -1,
>   "aggtime": -1, // >interval
>   "aggfixedinterval": true,
>   "channels": [
> {
>   "api": "volkszaehler",
>   "uuid": "eb3fa3d0- ", //WP Elster AS1440 0.1833
>  "middleware": 
> "http://192.168.178.22:81/middleware.php";,
>   "identifier": "1-1:1.7.0", //Leistung
>  "aggmode": "AVG", // "AVG" Der Mittelwert 
> für Leistung, "MAX" für Zähler, "SUM" für Counter
>  "secretKey": "",
> //"type": "device",
>   //"scaler": 0.001,
>   "duplicates": 0
> },
> {
>   "api": "volkszaehler",
>   "uuid": "c105ad10-", //WP Elster AS1440 0.1833
>  "middleware": 
> "http://192.168.178.22:81/middleware.php";,
>   "identifier": "1-1:1.8.0", //Gesamt
>  "aggmode": "MAX", // "AVG" Der Mittelwert 
> für Leistung, "MAX" für Zähler, "SUM" für Counter
>  "secretKey": "",
>  //"type": "device",
>   //"scaler": 1,
>   "duplicates": 0
> },
> {
>   "api": "volkszaehler",
>   "uuid": "563d4950- ", //WP Elster AS1440 0.1833
>  "middleware": 
> "http://192.168.178.22:81/middleware.php";,
>   "identifier": "1-1:1.8.1", //HT
>   

[vz-users] ständig Gateway Timeout - Performance DB steigern

2021-04-01 Diskussionsfäden René W .
Hallo Zusammen, ich kann mittlerweile nur noch müßig aufs Frontend zugreifen. Erst nach mehrmaligen Laden.Firefox 87.0 (64bit)Mein Setup sieht folgendermaßen aus. USB-IR -> Raspberry 3B+ -> Synology NASDas sollte doch eigentlich den Pi entlasten. Auch habe ich bereits die manuelle Aggregation per Hand durchgeführt mitphp /var/www/volkszaehler.org/bin/aggregate run -m full -l day -l hour -l minute(Quelle: https://wiki.volkszaehler.org/howto/datenmengen) Bei der Prüfung der Aggregation habe ich:version "0.3"    capabilities    database    data      rows  48231750   size    4097835008   aggregation      rows  5486728   size    630407168   ratio  8.791 Sollte also klappen. Auch die regelmäßige Aggregation ist im cronjob hinterlegt. Vielleicht was auffälliges in der vzlogger.conf ? {  "retry": 0,  "daemon": true,  "verbosity": 0,  "log": "/var/log/vzlogger.log",  "push": [],  "local": {    "enabled": false,    "port": 8080,    "index": false,    "timeout": 0,    "buffer": 0  },  "meters": [    {  "enabled": true,      "allowskip": true,  "interval": -1,  "aggtime": 10,  "aggfixedinterval": true,  "channels": [    {  "api": "volkszaehler",  "uuid": "07689860- ", //Haus Q3D     "middleware": "http://192.168.178.22:81/middleware.php",  "identifier": "1-0:1.7.0", //Wirkleistung  1-0:1.7.0 0.2868     //"secretKey": "",  //"type": "device",      //"scaler": 1000,  "aggmode": "AVG", //"AVG", // "AVG" Der Mittelwert für Leistung, "MAX" für Zähler, "SUM" für Counter  "duplicates": 0    },    {  "api": "volkszaehler",  "uuid": "c1006760- ", //Haus Q3D     "middleware": "http://192.168.178.22:81/middleware.php",  "identifier": "1-0:1.8.0", //Gesamtleistung  1-0:1.7.0 0.2868     //"secretKey": "",  //"type": "device",  //"scaler": 1000,  "aggmode": "MAX", //"AVG", // "AVG" Der Mittelwert für Leistung, "MAX" für Zähler, "SUM" für Counter  "duplicates": 0    }   ],  "protocol": "d0",  "device": "/dev/usb-ir-lesekopf0",  "dump_file": "",  //"pullseq": "2f3f210d0a",  //"ackseq": "auto",  "baudrate": 9600,  //"baudrate_read": 9600,  "parity": "7e1"  //"wait_sync": "off",  //"read_timeout": 10,  //"baudrate_change_delay": 0    },    {  "enabled": true,  "allowskip": true,  "interval": -1,  "aggtime": -1, // >interval  "aggfixedinterval": true,  "channels": [    {  "api": "volkszaehler",  "uuid": "eb3fa3d0- ", //WP Elster AS1440 0.1833     "middleware": "http://192.168.178.22:81/middleware.php",  "identifier": "1-1:1.7.0", //Leistung     "aggmode": "AVG", // "AVG" Der Mittelwert für Leistung, "MAX" für Zähler, "SUM" für Counter     "secretKey": "",    //"type": "device",  //"scaler": 0.001,  "duplicates": 0    },    {  "api": "volkszaehler",  "uuid": "c105ad10-", //WP Elster AS1440 0.1833     "middleware": "http://192.168.178.22:81/middleware.php",  "identifier": "1-1:1.8.0", //Gesamt     "aggmode": "MAX", // "AVG" Der Mittelwert für Leistung, "MAX" für Zähler, "SUM" für Counter     "secretKey": "",     //"type": "device",  //"scaler": 1,  "duplicates": 0    },    {  "api": "volkszaehler",  "uuid": "563d4950- ", //WP Elster AS1440 0.1833     "middleware": "http://192.168.178.22:81/middleware.php",  "identifier": "1-1:1.8.1", //HT     "aggmode": "AVG", // "AVG" Der Mittelwert für Leistung, "MAX" für Zähler, "SUM" für Counter     "secretKey": "",     //"type": "device",  //"scaler": 1,  "duplicates": 0    },    {  "api": "volkszaehler",  "uuid": "953700e0- ", //WP Elster AS1440 0.1833     "middleware": "http://192.168.178.22:81/middleware.php",  "identifier": "1-1:1.8.2", //NT     "aggmode": "AVG", // "AVG" Der Mittelwert f