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", //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,  //