NEWS
[Aufruf] Dringender Test sql 1.6.4
-
packe zu allererst bitte den code in "spoiler"
-
Was hat denn Beispielsweise "yr.0.forecast.day0.pressure" für einen typ laut Objekt? (unter Objekte auf das Objekt und rechts das Stiftsymbol. Dort dann "Raw Experten only" und dort in common -> type
Ist das einer der Datenpunkte wo Du es entfernt hast?
-
Was hat denn Beispielsweise "yr.0.forecast.day0.pressure" für einen typ laut Objekt? (unter Objekte auf das Objekt und rechts das Stiftsymbol. Dort dann "Raw Experten only" und dort in common -> type
Ist das einer der Datenpunkte wo Du es entfernt hast? `
Hallo,
{ "from": "system.adapter.admin.0", "ts": 1517660997880, "common": { "name": "Forecast for pressure for today", "type": "boolean", "role": "indicator", "unit": "hPa", "desc": "Forecast for pressure in hPa", "read": true, "write": false, "custom": { "sql.0": { "enabled": true, "changesOnly": false, "debounce": "", "retention": "63072000", "changesRelogInterval": "", "changesMinDelta": 0, "storageType": "" } } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "yr.0.forecast.day0.pressure", "type": "state" }
und der 1563:
{ "_id": "fritzbox.0.calls.ringActualNumber", "type": "state", "common": { "name": "actual last ringing number", "type": "string", "role": "call info", "read": true, "write": false, "desc": "actual last ringing number", "custom": { "sql.0": { "enabled": true, "changesOnly": false, "debounce": "", "retention": "63072000", "changesRelogInterval": "", "changesMinDelta": 0, "storageType": "" } } }, "native": {}, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "ts": 1517661165185 }
-
kapiere ich nicht
Habe nochmal auf Github logging erweitert. Also wenns geht bitte nochmal typ auf null setzen bei ausgewählten Datenpunkten und Debug Log schicken vom Start, Der Ausschnitt wie weiter oben war sinnvoll.
-
geht zwar nicht um den sql 1.6.4
der sql 1.6.7 sorgt bei mir mal immer wieder für volle Systemlast.
Alle Prozesse laufen bei ca. 0,3 - 1,0% Last. Der SQL schießt irgendwann auf ca. 90% hoch und zieht dann den js-controller mit.
-
Wir sind hier im Thread quasibei 1.6.4+
Wie oft denn? Welche Features nutzt du? Nimmst Du das automatische Loggen auch ohne Änderung? Welche Zeiträume? Passt das grob? Wie viele Datenpunkte?
Eine vermutung ist, das du viele Werte regelmässig ohne Wertänderungen hast und loggst.Ich versuche das zwar zu verteilen kann aber sein das das kaputt gegangen ist als die "Null"-Schreiben Nummer reingekommen ist. Da könnte ich checken wenn Du die Annahme bestätigst … sonst muss ich schauen
-
geht zwar nicht um den sql 1.6.4
der sql 1.6.7 sorgt bei mir mal immer wieder für volle Systemlast.
Alle Prozesse laufen bei ca. 0,3 - 1,0% Last. Der SQL schießt irgendwann auf ca. 90% hoch und zieht dann den js-controller mit. `
Kann ich bestätigen. Da werden unheimlich viele Aktionen gemacht. Habe ich durchs loggen gesehen.
Mußte es auf 1 Sekunde einschränken um überhaupt eine Chance zu haben. Waren trotzdem mehr als 100000 Zeichen in der kurzen Zeit.
(was er macht, sieht man oben im log bei meinem Post).
-
In deinem log sieht man nur leider auch nicht die "Auslöser" Steht das viel "relog" im Log?
-
ALso nehmen wir mal an es liegt an relogging was durch das initiale "null-Werte schreiben" von der Zufallsverteilung alle wieder gleichgezogen werden.
Könnte jetzt wieder tun. Please Test Github
-
@sissiwup: zu dem "typ reset auf null"-Thema: Habe nochmal auf Github logging erweitert. Also wenns geht bitte nochmal typ auf null setzen bei ausgewählten Datenpunkten und Debug Log schicken vom Start, Der Ausschnitt wie weiter oben war sinnvoll.
-
Wie oft denn? Welche Features nutzt du? Nimmst Du das automatische Loggen auch ohne Änderung? Welche Zeiträume? Passt das grob? Wie viele Datenpunkte?
Eine vermutung ist, das du viele Werte regelmässig ohne Wertänderungen hast und loggst.Ich versuche das zwar zu verteilen kann aber sein das das kaputt gegangen ist als die "Null"-Schreiben Nummer reingekommen ist. Da könnte ich checken wenn Du die Annahme bestätigst … sonst muss ich schauen `
Ich weiß, dass man mit meiner Aussage recht wenig anfangen kann.
Wenn ich es greifen könnte hätte ich mehr geschrieben. War erst einmal eine Wasserstandsmeldung
Ich probiere gerade einiges an der ioBroker Installation, da das latest Repro nicht lädt.
Irgendwann bei den diversen Schritten (Admin Updates, Repro aus Datei einlesen, Slave Update, …) usw. ging die sql Last extrem hoch. Wann genau kann ich leider nicht greifen.
Die Version vom SQL lief davor ohne Probleme. Auf einmal habe ich immer wieder die Situation, dass der SQL Adapter extrem viel CPU Last zieht.
Ein Start und Stop des Adapters bringt nichts. Beim letzten mal war es nach ein Reboot des Linux Host (kein Raspi, sondern eine VM auf einem NUC mit Power) wieder OK. Jetzt habe ich gerade den Zustand, dass sich die CPU Last nicht mehr beruhigt. Auch nach Reboot nicht.
Bei den meisten Datenpunkten habe ich den Haken "bei Änderung" gesetzt.
Da genau diese Konstellation der Adapter auch mit normaler Last lief glaube ich nciht, dass es an der Anzahl der Datenpunkte liegt.
Nur beim Rebbot kommt die Meldung "too many Connections".
Es werden 139 Datenpunkte geloggt.
Einige Datenpunkte sind dabei, bei denen sich der Wert sehr selten ändert.
Dort ist in der Regel der Haken "Änderungen aufzeichnen" gesetzt.
Was mich irritiert. Dann sollten doch nur Änderungen geloggt werden?
Bei einer Stichprobe eines Datenpunkts mit dem Haken finde ich unter Einstellungen/Tabelle alle 5 Sekunden den gleichen Wert. :?
[EDIT]
habe ich den Parameter
"Nach Intervall aufzeichnen(s)
(0 = Deaktivieren)"
ggf. falsch verstanden, bzw. ignoriert? Dort stand bei den kontrollierten Datenpunkt eine 4 drin.
Wird dann nach jedem 4. gleichem Wert der identische Wert geschrieben?
-
"Nur Änderungen" sollte nicht zu "alle 5 sekunden" führen.
Es gibt aber eine zweite EInstellung "Log unchanged values any(s)" bzw auf Deutsch "Gleiche Werte aufzeichnen(s)". Das meinte ich. Was steht denn da drin? Wenn da immer 0 steht dann kann das damit nichts zu tun haben.
Wenn es das nicht ist dann weiss ich es nicht. Der Adapter loggt an sich nur etwas wenn:
-
er startet - überall "null"s
-
er beendet wird - überall "null"s
-
wenn Daten reinkommen bzw. States sich ändern
Also ein kurzer Lastpeak beim start (weil ja alle "Null" geschrieben werden) ist zu erwarten.
Ansonsten Auf Debug stellen und auch wenns viel ist laufen lassen bis das Problem existiert. Dann Log schicken und alle Infos zu zeitpunkten oder so helfen dann.
-
-
"Nur Änderungen" sollte nicht zu "alle 5 sekunden" führen.
Es gibt aber eine zweite EInstellung "Log unchanged values any(s)" bzw auf Deutsch "Gleiche Werte aufzeichnen(s)". Das meinte ich. Was steht denn da drin? Wenn da immer 0 steht dann kann das damit nichts zu tun haben. `
Siehe oben…
Hatte wohl gerade editiert, als Du Deine Antwort geschrieben hattest. Zu mindestens bei einem DP stand dort eine 4.
Ich kontrolliere dann mal alle DPs.
Kann aber sagen, dass es mit den vorhanden Einstellungen in den letzten Wochen ruhig (keine Last) war.
Habe auch gerade 1.6.8 installiert. Die Last ist immer noch hoch, aber so um die 30% niedriger als vorher.
-
habe ich den Parameter
"Nach Intervall aufzeichnen(s)
(0 = Deaktivieren)"
ggf. falsch verstanden, bzw. ignoriert? Dort stand bei den kontrollierten Datenpunkt eine 4 drin.
Wird dann nach jedem 4. gleichem Wert der identische Wert geschrieben? `
"Nach Interval aufzeichnen" sagt mir nichts … Heisst das echt so???
Ansinsten kann ich aus dem englischen nur erraten das es genau um
Gleiche Werte aufzeichnen(s)
geht und eine 4 dort heisst: alle 4 SEKUNDEN wird der Wert geloggt auch wenn er sich nicht geändert hat
-
Hatte wohl gerade editiert, als Du Deine Antwort geschrieben hattest. Zu mindestens bei einem DP stand dort eine 4.
Ich kontrolliere dann mal alle DPs.
Kann aber sagen, dass es mit den vorhanden Einstellungen in den letzten Wochen ruhig (keine Last) war.
Habe auch gerade 1.6.8 installiert. Die Last ist immer noch hoch, aber so um die 30% niedriger als vorher. `
Dann mach mal die 4s raus bei allen und checke wie es dann ist
Wenn noch zu hoch: Debug log
-
"Nach Interval aufzeichnen" sagt mir nichts … Heisst das echt so???
Ansinsten kann ich aus dem englischen nur erraten das es genau um
Gleiche Werte aufzeichnen(s)
geht und eine 4 dort heisst: alle 4 SEKUNDEN wird der Wert geloggt auch wenn er sich nicht geändert hat `
ja, heißt so (war copy & paste).
Danke für die Erklärung. Hätte ich vorher mal nachsehen sollen :roll:
Nach dem Adapterupdate auf 1.6.8:
-
Interessant mit der Bezeichnung. Steht’s im nicht in den Textfiles drin … häää ... checke ich morgen
Hatte nur das Update auf 1.6.8 den Effekt oder auch das du die 4 aus dem Feld entfernt hast?! Ersteres wäre falsch.
-
Hatte nur das Update auf 1.6.8 den Effekt oder auch das du die 4 aus dem Feld entfernt hast?! Ersteres wäre falsch. `
Die "null" Einträge traten nach dem Update des Adapters auf (an Datenpunkten kontrolliert, die ich definitiv erst danach geändert hatte, 4 raus).
Gerade mal Stichpunkte gemacht. Auch in älteren Daten sind vereinzelt "null" Einträge drin.
Den Rest morgen… gähn
-
Und ein paar Log-Einträge direkt nach dem Update auf 1.6.8, die es vorher so nicht gab:
host.iobrokerng2 2018-02-06 00:15:33.998 error instance system.adapter.sql.0 terminated with code 0 (OK) sql.0 2018-02-06 00:15:33.987 info terminating sql.0 2018-02-06 00:15:33.482 info Adapter is disabled => stop sql.0 2018-02-06 00:15:33.481 error Error: ER_CON_COUNT_ERROR: Too many connections sql.0 2018-02-06 00:15:33.391 error Cannot insert INSERT INTO `iobrokerng2`.ts_number (id, ts, val, ack, _from, q) VALUES(835, 1517872533303, , 1, 17, 0);: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual t sql.0 2018-02-06 00:15:33.390 error Cannot insert INSERT INTO `iobrokerng2`.ts_number (id, ts, val, ack, _from, q) VALUES(834, 1517872533303, , 1, 17, 0);: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual t sql.0 2018-02-06 00:15:33.368 error Error: ER_CON_COUNT_ERROR: Too many connections host.iobrokerng2 2018-02-06 00:15:33.302 info stopInstance system.adapter.sql.0 host.iobrokerng2 2018-02-06 00:15:33.302 info object change system.adapter.sql.0 sql.0 2018-02-06 00:15:15.017 error Cannot insert INSERT INTO `iobrokerng2`.ts_number (id, ts, val, ack, _from, q) VALUES(834, 1517872514003, , 1, 5, 0);: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual th sql.0 2018-02-06 00:15:15.015 error Cannot insert INSERT INTO `iobrokerng2`.ts_number (id, ts, val, ack, _from, q) VALUES(835, 1517872514003, , 1, 5, 0);: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual th sql.0 2018-02-06 00:14:17.431 error Error: ER_NO_SUCH_TABLE: Table 'iobrokerng2.undefined' doesn't exist sql.0 2018-02-06 00:14:17.424 error Please wait till next data record is logged and reload. sql.0 2018-02-06 00:14:17.424 warn For getHistory for id javascript.0.Google_Maps.zur_Arbeit.Minuten_0: Type empty. Need to write data first. Index = 826 sql.0 2018-02-06 00:14:11.916 error Error: ER_NO_SUCH_TABLE: Table 'iobrokerng2.undefined' doesn't exist sql.0 2018-02-06 00:14:11.908 error Please wait till next data record is logged and reload. sql.0 2018-02-06 00:14:17.432 error Error: ER_NO_SUCH_TABLE: Table 'iobrokerng2.undefined' doesn't exist sql.0 2018-02-06 00:14:17.427 error Please wait till next data record is logged and reload. sql.0 2018-02-06 00:14:17.427 warn For getHistory for id javascript.0.Google_Maps.zur_Arbeit.Minuten_0: Type empty. Need to write data first. Index = 826 sql.0 2018-02-06 00:14:11.918 error Error: ER_NO_SUCH_TABLE: Table 'iobrokerng2.undefined' doesn't exist sql.0 2018-02-06 00:14:11.912 error Please wait till next data record is logged and reload. sql.0 2018-02-06 00:14:11.912 warn For getHistory for id javascript.3.co2sensor.co2: Type empty. Need to write data first. Index = 760
-
Ok, die CPU Last aktuell (alle Intervalle auf 0) reiche ich auch noch schnell nach:
Aktueller Stand (nach Reboot vom Linux Host).