Hallo in die Runde
Ich verfolge diese Diskussion schon eine Weile, da der beschriebene Fehler auch bei mir bisweilen auftaucht.
Um der Ursache etwas näher zu kommen, möchte ich meine Erkenntnisse gern mit Euch teilen:
Zunächst habe ich mit tcpdump im fraglichen Zeitraum ( 00:00:50 - 00:01:05 ) den Netzwerkverkehr zwischen dem KNX-Gateway (MDT) und Edomi mitgeschnitten.
Die Darstellung in Wireshark sieht dann so aus. (KNX-GW: 192.168.0.197; EDOMI: 192.168.0.154)
edomi4_wireshark.png
Paket 240 und 241 sind noch normale Datenpakete. 00:00:59 sendet das KNX-Gateway ein Request, das nicht beantwortet wird (Paket 243). Daraufhin wird die Anfrage knapp eine Sekunde später noch einmal wiederholt (Paket 244). Weil wieder keine Antwort von Edomi kommt, fordert das Gateway wiederum eine Sekunde später die Beendigung der Verbindung an ( Paket 246 ). Diese Anforderung wird mit Paket 251 und 252 bestätigt, obwohl Edomi vorher noch einmal versucht sich mit dem Gateway zu unterhalten. Da die Verbindung aber schon abgebaut ist, wird in Paket 255 (hier nicht zu erkennen) mit der Fehlermeldung geantwortet, dass der angesprochene Kommunikationskanal nicht mehr existiert.
Die nicht mehr stehende Verbindung quittiert der Edomi-Server mit einem ICMP-Paket (Port unreachable) (Paket 253). Diese Fehlermeldung wird ins Fehlerlog von Edomi eingetragen. (Uhrzeit: 00:01:02)
image_63218.png
Was passiert zu dem Zeitpunk in Edomi?
image_63221.jpg
In der EDOMI-Statistik ist zu erkennen, dass die CPU nahezu zu 100% beschäftigt ist. Das Kommando top zeigt, dass der Prozess mysqld die CPU beschäftigt.
Das wiederum ist wahrscheinlich auf den Backup-Prozess, der um diese Zeit startet, zurück zu führen, wie jonofe hier vermutet.
Warum kommt dieser Fehler nicht jede Nacht?
Der Fehler kommt nur zum tragen, wenn genau im oben genannten Zeitraum zwischen Gateway und Edomi Daten ausgetauscht werden.
Bei mir ist die Wahrscheinlichkeit für ein Datentelegramm sehr hoch, da der Stromzähler alle paar Sekunden seinen Zählerstand und die aktuelle Leistung übermittelt.
Als ich diese Übertragung noch nicht implementiert hatte, gab es so gut wie nie den beschriebenen Fehler.
Welche Lösungen kommen in Frage?
1. Man könnte dem mysql-Prozess etwas an Priorität entziehen, um der CPU noch Zeit für andere Aufgaben zu lassen. Das wirkt sich aber mit Sicherheit auf die Gesamtperformance des Systems aus.
2. Edomi könnte während des Backup-Prozesses gezielt die Netzwerkverbindung beenden. Allerdings werden dann sicher KNX-Datenpakete im Gateway verworfen und der WAF leidet, weil ausgerechnet zu dem Zeitpunkt das Tablet an der Wand das Kommando "Alle Lichter aus" o.ä. nicht ausführen möchte. ;-)
3. Wir leben damit, dass dieser Fehler bei einer ungünstigen Konstellation Backup vs. Datenverkehr auftreten kann.
Gruß wingfighter
Ich verfolge diese Diskussion schon eine Weile, da der beschriebene Fehler auch bei mir bisweilen auftaucht.
Um der Ursache etwas näher zu kommen, möchte ich meine Erkenntnisse gern mit Euch teilen:
Zunächst habe ich mit tcpdump im fraglichen Zeitraum ( 00:00:50 - 00:01:05 ) den Netzwerkverkehr zwischen dem KNX-Gateway (MDT) und Edomi mitgeschnitten.
Die Darstellung in Wireshark sieht dann so aus. (KNX-GW: 192.168.0.197; EDOMI: 192.168.0.154)
edomi4_wireshark.png
Paket 240 und 241 sind noch normale Datenpakete. 00:00:59 sendet das KNX-Gateway ein Request, das nicht beantwortet wird (Paket 243). Daraufhin wird die Anfrage knapp eine Sekunde später noch einmal wiederholt (Paket 244). Weil wieder keine Antwort von Edomi kommt, fordert das Gateway wiederum eine Sekunde später die Beendigung der Verbindung an ( Paket 246 ). Diese Anforderung wird mit Paket 251 und 252 bestätigt, obwohl Edomi vorher noch einmal versucht sich mit dem Gateway zu unterhalten. Da die Verbindung aber schon abgebaut ist, wird in Paket 255 (hier nicht zu erkennen) mit der Fehlermeldung geantwortet, dass der angesprochene Kommunikationskanal nicht mehr existiert.
Die nicht mehr stehende Verbindung quittiert der Edomi-Server mit einem ICMP-Paket (Port unreachable) (Paket 253). Diese Fehlermeldung wird ins Fehlerlog von Edomi eingetragen. (Uhrzeit: 00:01:02)
image_63218.png
Was passiert zu dem Zeitpunk in Edomi?
image_63221.jpg
In der EDOMI-Statistik ist zu erkennen, dass die CPU nahezu zu 100% beschäftigt ist. Das Kommando top zeigt, dass der Prozess mysqld die CPU beschäftigt.
Das wiederum ist wahrscheinlich auf den Backup-Prozess, der um diese Zeit startet, zurück zu führen, wie jonofe hier vermutet.
Warum kommt dieser Fehler nicht jede Nacht?
Der Fehler kommt nur zum tragen, wenn genau im oben genannten Zeitraum zwischen Gateway und Edomi Daten ausgetauscht werden.
Bei mir ist die Wahrscheinlichkeit für ein Datentelegramm sehr hoch, da der Stromzähler alle paar Sekunden seinen Zählerstand und die aktuelle Leistung übermittelt.
Als ich diese Übertragung noch nicht implementiert hatte, gab es so gut wie nie den beschriebenen Fehler.
Welche Lösungen kommen in Frage?
1. Man könnte dem mysql-Prozess etwas an Priorität entziehen, um der CPU noch Zeit für andere Aufgaben zu lassen. Das wirkt sich aber mit Sicherheit auf die Gesamtperformance des Systems aus.
2. Edomi könnte während des Backup-Prozesses gezielt die Netzwerkverbindung beenden. Allerdings werden dann sicher KNX-Datenpakete im Gateway verworfen und der WAF leidet, weil ausgerechnet zu dem Zeitpunkt das Tablet an der Wand das Kommando "Alle Lichter aus" o.ä. nicht ausführen möchte. ;-)
3. Wir leben damit, dass dieser Fehler bei einer ungünstigen Konstellation Backup vs. Datenverkehr auftreten kann.
Gruß wingfighter
Kommentar