NEWS
ioBroker regelmäßig nach ca. einem halben Tag langsam
-
Leider habe ich seit Wochen Probleme mit meinem ioBroker der über Docker auf nem Synology NAS DS1825+ gehostet ist.
Das NAS ist SEHR performant und ich habe mit allen anderen Anwendungen keine Probleme.
Es läuft 24/7 - 8GB RAM - davon mehr als die Hälfte frei.ioBroker verwende ich fast ausschließlich um Metriken für mein BKW zu erstellen. D.h. es ist eine Influx2 DB angebunden dort werden vom via MQTT übermittelte Werte vom Wechselrichter in die DB geschrieben.
Zusätzlich habe ich Energiefluss erweitert im Betrieb (was reibungslos läuft).
Wenn ich ioBroker neu starte läuft es für ca. 1/2 Tag einwandfrei. Nach dieser Zeit höre ich dann schon oft den Lüfter vom NAS und weiß "aha da dreht ioBroker mal wieder durch".
Ich schaue mir dann die Logs an und stelle fest, dass ganze viele Werte sekündlich nicht in die DB geschrieben werden können. Das Log File ist dann meist schon über 2GB!!!! groß, da es von diesen Einträgen zugemüllt wird im Sekundentakt. Ich denke genau dieser Vorgang kostet die Performance. Selbst wenn ich im Protokoll die Pause Taste drücke wird fleißig weiter geschrieben.
Der Spuk ist erst nach nem ioBroker Neustart vorbei. Dann funktioniert alles wieder reibungslos für ca. 1/2 Tag.



-
so siehts nach nem Neustart aus:

Da werden diese Einträge in dem Moment auch nicht ins Log geschrieben.
-
Leider habe ich seit Wochen Probleme mit meinem ioBroker der über Docker auf nem Synology NAS DS1825+ gehostet ist.
Das NAS ist SEHR performant und ich habe mit allen anderen Anwendungen keine Probleme.
Es läuft 24/7 - 8GB RAM - davon mehr als die Hälfte frei.ioBroker verwende ich fast ausschließlich um Metriken für mein BKW zu erstellen. D.h. es ist eine Influx2 DB angebunden dort werden vom via MQTT übermittelte Werte vom Wechselrichter in die DB geschrieben.
Zusätzlich habe ich Energiefluss erweitert im Betrieb (was reibungslos läuft).
Wenn ich ioBroker neu starte läuft es für ca. 1/2 Tag einwandfrei. Nach dieser Zeit höre ich dann schon oft den Lüfter vom NAS und weiß "aha da dreht ioBroker mal wieder durch".
Ich schaue mir dann die Logs an und stelle fest, dass ganze viele Werte sekündlich nicht in die DB geschrieben werden können. Das Log File ist dann meist schon über 2GB!!!! groß, da es von diesen Einträgen zugemüllt wird im Sekundentakt. Ich denke genau dieser Vorgang kostet die Performance. Selbst wenn ich im Protokoll die Pause Taste drücke wird fleißig weiter geschrieben.
Der Spuk ist erst nach nem ioBroker Neustart vorbei. Dann funktioniert alles wieder reibungslos für ca. 1/2 Tag.



Zeige mal den Ausschnitt des logfiles (als Text) bei dem die Probleme mit dem timeout beginnen.
Irgendwie scheint die influx dB nicht zeitnah erreichbar seinBei der ram und CPU Historie wäre es ebenfalls gut, mal einen größeren Ausschnitt zu sehen, insbesondere den Zeitraum, wo es beginnt
Eventuell müsste man auch mal noch das influxlog anschauen
-
oder mal mit dem Intervall probieren, je nachdem was bereits Eingestellt ist

-
Neben dem Intervall macht es auch Sinn das du prüfst wie oft die Werte überhaupt geschrieben werden sollen - das sieht mir ganz stark danach aus das Du in bestimmten Situationen plötzlich sehr viele Werte auf einmal schreibst und damit die Datenbank überlastest.
A.
-
Vielen Dank schonmal für die Tipps.
Es geht um ingesamt ca. 50 Werte die aller 3 Sekunden geschrieben werden. Aber halt auch nur wenn sie sich verändert haben. Das habe ich für jeden Wert hinterlegt s. Screenshot Das halte ich für ne Influx DB noch recht geschmeidig und sollte sie ohne Probleme verarbeiten können oder?

Zu dem Intervall. Ist der im Influx Adapter gemeint?
Das steht das hier drin. Was genau für Werte soll ich da hinterlegen? Ganz konkrete Tipps für mein Szenario?
-
Vielen Dank schonmal für die Tipps.
Es geht um ingesamt ca. 50 Werte die aller 3 Sekunden geschrieben werden. Aber halt auch nur wenn sie sich verändert haben. Das habe ich für jeden Wert hinterlegt s. Screenshot Das halte ich für ne Influx DB noch recht geschmeidig und sollte sie ohne Probleme verarbeiten können oder?

Zu dem Intervall. Ist der im Influx Adapter gemeint?
Das steht das hier drin. Was genau für Werte soll ich da hinterlegen? Ganz konkrete Tipps für mein Szenario?
Es geht um ingesamt ca. 50 Werte die aller 3 Sekunden geschrieben werden. Aber halt auch nur wenn sie sich verändert haben. Das habe ich für jeden Wert hinterlegt s. Screenshot Das halte ich für ne Influx DB noch recht geschmeidig und sollte sie ohne Probleme verarbeiten können oder?
Das hängt ganz davon ab wie leistungsfähig die hardware dahinter ist. Trotzdem würde ich in Frage stellen ob ein 3 Sekunden Intervall zur Protokollierung wirklich notwendig ist. An der Stelle macht es ggf. Sinn mittels eines Skriptes die Werte über 20 oder 30 Sekunden zu aggregieren bevor sie in die Datenbank geschrieben werden.
A.
-
Es geht um ingesamt ca. 50 Werte die aller 3 Sekunden geschrieben werden. Aber halt auch nur wenn sie sich verändert haben. Das habe ich für jeden Wert hinterlegt s. Screenshot Das halte ich für ne Influx DB noch recht geschmeidig und sollte sie ohne Probleme verarbeiten können oder?
Das hängt ganz davon ab wie leistungsfähig die hardware dahinter ist. Trotzdem würde ich in Frage stellen ob ein 3 Sekunden Intervall zur Protokollierung wirklich notwendig ist. An der Stelle macht es ggf. Sinn mittels eines Skriptes die Werte über 20 oder 30 Sekunden zu aggregieren bevor sie in die Datenbank geschrieben werden.
A.
Es geht um ingesamt ca. 50 Werte die aller 3 Sekunden geschrieben werden. Aber halt auch nur wenn sie sich verändert haben. Das habe ich für jeden Wert hinterlegt s. Screenshot Das halte ich für ne Influx DB noch recht geschmeidig und sollte sie ohne Probleme verarbeiten können oder?
Das hängt ganz davon ab wie leistungsfähig die hardware dahinter ist. Trotzdem würde ich in Frage stellen ob ein 3 Sekunden Intervall zur Protokollierung wirklich notwendig ist. An der Stelle macht es ggf. Sinn mittels eines Skriptes die Werte über 20 oder 30 Sekunden zu aggregieren bevor sie in die Datenbank geschrieben werden.
A.
kann ich das aggregieren mit der Adapterfunktion "Schreibaktionen zusammenfassen" auch ausführen oder braucht es unbedingt ein Script?
-
Es geht um ingesamt ca. 50 Werte die aller 3 Sekunden geschrieben werden. Aber halt auch nur wenn sie sich verändert haben. Das habe ich für jeden Wert hinterlegt s. Screenshot Das halte ich für ne Influx DB noch recht geschmeidig und sollte sie ohne Probleme verarbeiten können oder?
Das hängt ganz davon ab wie leistungsfähig die hardware dahinter ist. Trotzdem würde ich in Frage stellen ob ein 3 Sekunden Intervall zur Protokollierung wirklich notwendig ist. An der Stelle macht es ggf. Sinn mittels eines Skriptes die Werte über 20 oder 30 Sekunden zu aggregieren bevor sie in die Datenbank geschrieben werden.
A.
kann ich das aggregieren mit der Adapterfunktion "Schreibaktionen zusammenfassen" auch ausführen oder braucht es unbedingt ein Script?
kann ich das aggregieren mit der Adapterfunktion "Schreibaktionen zusammenfassen" auch ausführen oder braucht es unbedingt ein Script?
Das musst du ausprobieren - sicher bin ich mir nicht. Ich hab es bei mir so gelöst das die Werte die in die Datenbank gehen sich nicht so oft verändern - sprich keiner schneller als alle 10 sekunden.
Ich würde für den Anfang mit den parametern
Schreibaktionen zusammenfassen: 10
Schreibintervall: 600anfangen, und schauen wie die Daten in der Historie aussehen.
A.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden