[vz-users] Network Error Gateway Timeout
Tilman Glötzner
tilman_1 at gloetzner.net
So Dez 3 12:50:08 CET 2023
Hallo noch einmal Mal mit einer weiteren Frage:
kann man die Datenbank teilen und auf mehreren Rechnern verteilen? Die
Idee wäre, dass man auf dem Pi nur den letzten Monat an Daten vorhält.
Alles was älter ist, landet auf einem Nas, das mehr Performance hat.
Kann die Middleware die Daten von verschiedenen Datenbanken zusammen
sammeln? Das Nas läuft nicht immer und so hätte man die Möglichkeit die
Logdaten des letzten Monats jederzeit zu sehen. Wenn man mehr sehen
möchte, muss dazu das Nas laufen.
Danke und Gruß
Tilman
On 03.12.23 12:44, Tilman Glötzner wrote:
> Hallo nochmal
>
> a) Mir ist noch eingefallen, dass es beim Start RPI Unregelmäßigkeiten
> gab und volkszaehler nicht starten wollte. Ich habe ihn mehrfach von
> Hand starten müssen, bis er lief. Die Fehlermeldungen waren:
>
> [Nov 28 01:50:56][main] log level is 3
> [Nov 28 01:50:56][s0] failed to set policy to SCHED_FIFO for
> counter_thread
> [Nov 28 01:50:56][s0] failed to set policy to SCHED_FIFO for
> counter_thread
> [Nov 28 01:50:56][s0] failed to set policy to SCHED_FIFO for
> counter_thread
> [Nov 28 01:50:56][] Startup failed: open direction failed
>
> Ausserdem musste ich auch die middleware von Hand starten. Die lief
> dann aber mit dem ersten Versuch.
>
> b) Ausserdem habe ich ein paar Warnungen von SQL in
> /var/log/mysql/error.log gefunden
>
> 2023-12-03 4:04:52 2490 [Warning] Aborted connection 2490 to db:
> 'volkszaehler' user: 'vz' host: 'localhost' (Got an error reading
> communication packets)
> 2023-12-03 11:42:34 2578 [Warning] Aborted connection 2578 to db:
> 'volkszaehler' user: 'vz' host: 'localhost' (Got an error writing
> communication packets)
> 2023-12-03 11:42:58 2588 [Warning] Aborted connection 2588 to db:
> 'volkszaehler' user: 'vz' host: 'localhost' (Got an error writing
> communication packets)
> 2023-12-03 11:43:00 2562 [Warning] Aborted connection 2562 to db:
> 'volkszaehler' user: 'vz' host: 'localhost' (Got an error writing
> communication packets)
>
> c) Wäre es möglich, dass z.B. der Index von data beim Starten korrupt
> geworden ist und es deshalb zu den Performance-Problemen kommt? Kann
> man den Index einer Tabelle regenerieren oder zumindest überprüfen?
>
> Danke und Gruß
>
> Tilman
>
> On 01.12.23 11:18, Tilman Glötzner wrote:
>> Hallo
>>
>> ich verwende volkszaehler mit einem Raspberry Pi Model B Rev 2 mit
>> 512 MB RAM. Nach einem Neustart am 28.11. erhalte ich mit der
>> Einstellung Current praktisch immer einen Timeout-Fehler. Wenn ich
>> die Anzahl der Signale auf 1 reduziere und einen Zeitbereich von
>> circa 1/2 Tag auswähle geht es zumeist. Auch das Betrachten von Daten
>> über einen Monate mit der Auflösung 1 Tag bzw 1 Jahr mit der
>> Auflösung 1 Tag funktioniert. Desweiteren fällt auf, die Spalte mit
>> den Zählerständen nicht mehr gezeigt wird.
>>
>> Hier ein Ausschnitt aus dem Log während eines Prozess, der im Timeout
>> endet:
>>
>> ec 1 10:39:05 logger systemd[1]: Starting Clean php session files...
>> Dec 1 10:39:08 logger systemd[1]: phpsessionclean.service: Succeeded.
>> Dec 1 10:39:08 logger systemd[1]: Started Clean php session files.
>> Dec 1 10:40:01 logger CRON[13678]: (root) CMD (flock -n
>> /tmp/flock-vz_aggregate.lock php
>> /var/www/volkszaehler.org/bin/aggregate run -m delta -l minute
>> >/dev/null)
>> Dec 1 10:50:01 logger CRON[14171]: (root) CMD (flock -n
>> /tmp/flock-vz_aggregate.lock php
>> /var/www/volkszaehler.org/bin/aggregate run -m delta -l minute
>> >/dev/null)
>> Dec 1 10:52:54 logger php[3438]: Maximum execution time of 30
>> seconds exceeded. Closing worker.
>> Dec 1 10:52:54 logger php[3438]: Maximum execution time of 30
>> seconds exceeded. Closing worker.
>>
>>
>> Was noch auffällt, ist der Timestamp des Locks. Den RPI ich für den
>> Einbau einer Erweiterung um 0:35 h (Local Time) am 28.11. herunter
>> gefahren und um 1:53h wieder hochgefahren. Eigentlich war der Rechner
>> zum Zeitpunkt des Timestamps aus. Was mir unklar ist: Muss das Lock
>> nach beenden der aggregate-Scripte wieder gelöscht werden?
>>
>> ls -la /tmp/flock-vz_aggregate.lock
>> -rw-r--r-- 1 root root 0 Nov 28 01:30 /tmp/flock-vz_aggregate.lock
>>
>>
>> An Sensoren frage ich 3 Zähler mittels S0-GPIO ab, ausserdem 1
>> Smart-Zaehler per IR. Desweiteren einen Solarakku über ein
>> pythonskript und modbus on tcp, und einen Gaszähler mittels python
>> script (holt die Zählerdaten von einen Program lokal über tcp). Die
>> Datenbank lebt auf einer USB-SSD-Festplatte (ASM1051E SATA 6Gb/s bridge)
>>
>> Die Optimierungen der Datenbank mittels cronjobs habe ich schon vor
>> längerer Zeit implementiert (sieht man auch im Log).
>>
>> Die Frage ist nun, wo ich Potential habe, die Performance soweit zu
>> verbessern, dass es keine Timeouts mehr gibt. Gleichzeitig würde ich
>> ungerne Daten aus der Datenbank löschen.
>>
>>
>> Danke und Gruß
>>
>> Tilman
>>
Mehr Informationen über die Mailingliste volkszaehler-users