NEWS
js-controller 7.1 Beta test
-
Hallo,
bekomme seit heute obige Meldung. Habe keine neuen HM-Geräte den vorhandenen 50 Geräten, hinzugefügt. Kann ich das Limit irgendwo hochsetzen (iobroker.json)?
-
@feuersturm
Vielen Dank für deine kompetente und hilfreiche Antwort. -
@apollon77 korrigier mich bitte wnn ich was falsche tipp:
Die 5000er Meldung ist nur ein WARNING (bzw. Information). Am Systemverhalten ändert sich nichts. Dein Adapter wird dadurch weder Daten löschen noch irgendwelche States nicht mehr neu anlegen. Ein Ignorieren der Meldung bewirkt keinerlei Veränderung am normalen Betrieb.
Warum kommt diese Meldung:
Es gibt immer wieder Adapter oder Situationen wo unmengen an States erstell werden, die dann niemand mehr benutzt. Diese States kosten Speicher und kosten auch CPU Zeit da sie vom Kernel im Speicher gehalten werden und bei diversen Aktionen auch gescannt werden müssen. Es gab wiederholt Situationen wo user sich gewundert haben dass ihr System so langsam geworden ist oder dass Backups so groß wurden etc. Diese Meldung soll das Bewußtsein heben, dass für einen normalen Adapter ungewöhnliuch viele States vorhanden sind. Ob das im Einzelfall gewunschen ist und ob der User eh ein System mit 64GB Ram betreit kann nur er beurteilen - und ggF das Warnungslimit hochsetzen.Generell sollte beim Auftreten der Meldung mal geprüft werden, was das für States sind.
Handelt es sich dabei z.B. um States die wirklich nur temporär sind (z.B. um MACs von Geräten die irgendwann mal im Netz gesehen wurden) oder die durch Übertragungsfehler (verstümmelte IDs etc) entstanden sind, dann kann man die wahrscheinlich einfach löschen.Historische Daten sollten nicht in den States gespeichert werden. Und ja das ist etwas was der Adapter lösen / anbeiten muss.
Ebenso kann ein Adapter zumindest on Request Cleanups anbieten.
Es ist daher durchaus sinnvoll ein entsprechendes Issue bei einem Adapetr der größere Mengen historischer Daten anlegt zu erstellen.Ebenso ist es sinnvoll bei einem Adapter der 10000 Datenpunkte eines Apis abholt ein Issue zu erstellen und zu hinterfragen ob es nicht möglich wäre hier eine Auswahl, Filterung etc. umzusetzen. Neu weil ein Wetteradaptrr die Temperaturen aller deutschne Messstationen abfragen kann, wird es wohl kaum sinnvoll sein, dies auch zu tun.
ERGO zusammengefasst:
- keine Panik, es gehen keine Daten verloren
- bei offensichtlichen Schrottdaten (z.B. durch eine Störung) diese löschen.
- bei nicht offensichtlich sinnvoll benötigten Daten ein Issue beim Adapter erstellen mit der Bitte die Stateanzahl zu hinterfragen / optimieren
- wenn man wirklich so viele Daten einer Instanz braucht und ein sntsprechend potentes System hat kann man das Warnlimit anpassen.
-
@Armilar na ja ich werde es sehen, morgen wird wieder geladen. Aber mal weiter gedacht, selbst wenn ich jetzt lösche bis vielleicht noch 2000 Objekte übrig sind, dann darf ich spätestens in einem Jahr wieder ran. Irgendwie hätte ich gehofft, da nicht immer mal wieder manuell eingreifen zu müssen.
@Steffl sagte in js-controller 7.1 Beta test:
@Armilar na ja ich werde es sehen, morgen wird wieder geladen. Aber mal weiter gedacht, selbst wenn ich jetzt lösche bis vielleicht noch 2000 Objekte übrig sind, dann darf ich spätestens in einem Jahr wieder ran. Irgendwie hätte ich gehofft, da nicht immer mal wieder manuell eingreifen zu müssen.
Erstell ein Issue beim Adapter. Ein Maintainer der seinen Adapter gut pflegt wird das sicher evaluieren und eine geeignete Optimierung umsetzen.
-
@homoran
Ich rege an diese Topic entweder an den js-controller 7.1.x Testthread anzuhängen oder hier zu schließen.
Inhaltlich gehört das zu 100% zum js-controller Test@mcm1957 sagte in js-controller 7.1 Beta test:
an den js-controller 7.1.x Testthread anzuhängen
erledigt!
-
Habe ich es überlesen, oder gab es schon einen Hinweis auf das erhöhen der Objekt Limits?
.... und ja, ich habe unendlich viele Diagramme die ihre Daten alle aus SA beziehen.
-
Habe ich es überlesen, oder gab es schon einen Hinweis auf das erhöhen der Objekt Limits?
.... und ja, ich habe unendlich viele Diagramme die ihre Daten alle aus SA beziehen.
@JB_Sullivan sagte in js-controller 7.1 Beta test:
gab es schon einen Hinweis auf das erhöhen der Objekt Limits
sagte in js-controller 7.1 Beta test:
@MartyBr der Doku nach
https://github.com/ioBroker/ioBroker.js-controller/blob/master/README.md#objects-warn-limit
gilt das für alle -
@JB_Sullivan sagte in js-controller 7.1 Beta test:
gab es schon einen Hinweis auf das erhöhen der Objekt Limits
sagte in js-controller 7.1 Beta test:
@MartyBr der Doku nach
https://github.com/ioBroker/ioBroker.js-controller/blob/master/README.md#objects-warn-limit
gilt das für alleist immer noch falsch. Ich hatte schon einen PR gestellt:
nicht
system.host.adapter.<adapter>.<instance>.objectsWarnLimitsondern
system.adapter.<adapter>.<instance>.objectsWarnLimit -
Was ist eigentlich die Konsequenz daraus, wenn man das Limit nicht anpasst? Werden nach 5000 Datenpunkten die restlichen nicht mehr beschrieben? Das wäre ja gerade im Fall von Sourceanalytix ein Killer, da der Adapter ja umfangreiche Werte Berechnungen durchführt.
-
Was ist eigentlich die Konsequenz daraus, wenn man das Limit nicht anpasst? Werden nach 5000 Datenpunkten die restlichen nicht mehr beschrieben? Das wäre ja gerade im Fall von Sourceanalytix ein Killer, da der Adapter ja umfangreiche Werte Berechnungen durchführt.
@JB_Sullivan sagte in js-controller 7.1 Beta test:
Was ist eigentlich die Konsequenz daraus, wenn man das Limit nicht anpasst?
du bekommst dauernd diese Meldung
-
Was ist eigentlich die Konsequenz daraus, wenn man das Limit nicht anpasst? Werden nach 5000 Datenpunkten die restlichen nicht mehr beschrieben? Das wäre ja gerade im Fall von Sourceanalytix ein Killer, da der Adapter ja umfangreiche Werte Berechnungen durchführt.
@JB_Sullivan sagte in js-controller 7.1 Beta test:
Was ist eigentlich die Konsequenz daraus, wenn man das Limit nicht anpasst? Werden nach 5000 Datenpunkten die restlichen nicht mehr beschrieben? Das wäre ja gerade im Fall von Sourceanalytix ein Killer, da der Adapter ja umfangreiche Werte Berechnungen durchführt.