Re: [vz-users] ständig Gateway Timeout - Performance DB steigern
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
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
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
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
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
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