NEWS
EXPERIMENTELL: JsonL Datenbank für js-controller
-
@dr-bakterius
danke für den Hinweis!Ja Prozentual ist der Anstieg schon heftig. Aber da bin ich ganz entspannt das kostet mich etwas Strom, CPU hat ja keinen Verschleiß wie eine Festplatte. Wenn man das noch in den Griff bekommt umso besser, lüppt aber auch so...
-
@adnim Stimme dir eh zu - finde das neue Konzept bisher auch toll. Wobei eine CPU und die anderen Komponenten natürlich auch schneller altern je höher sie belastet werden. Doch das ist bei diesen Werten und im Vergleich zu den Datenträgern wirklich zu vernachlässigen.
-
Bei mir sieht es bzgl. der Diskwrites sehr ähnlich aus:
Nach der Einstellung geringerer Schreibzyklen für redis (States und Objects) ist die Schreiblast deutlich runtergegangen. Mit der Umstellung auf die aktuelle Version des js-controller und jsonl (erst nur Objects dann States und Objects) ist ein weiterer spürbarer Rückgang zu verzeichnen.
Die CPU-Auslastung geht - insbesondere seit auch die States in der jsonl-DB liegen - spürbar nach oben (~+40 % von 3,25% auf 4,5%).
Gruß Marco
-
@adnim sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:
Maybee sollte das der neue Standard werden mit JsonL!?
Wieviele hatten denn seit ihrer Umstellung Situationen, in denen das neue Schreibverfahren seine Robustheit unter Beweis stellen konnte?
-
@lonsimbt sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:
3,25% auf 4,5%
Das ist jetzt alles nicht so die Welt, aber wir haben bereits grundlegend was in der File DB identifiziert (der Teil, der auch von JSONL genutzt wird), was das verursachen könnte.
-
Habt ihr beides, also States und Objects auf JsonL umgestellt?
Ich nutze im moment noch radis für states und file für objects und bin am überlegen wie ich das in Zukunft so haben will. -
@lonsimbt sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:
Die CPU-Auslastung geht - insbesondere seit auch die States in der jsonl-DB liegen - spürbar nach oben (~+40 % von 3,25% auf 4,5%).
Naja das ist aber zu erwarten!!
Bisher hatte die Redis DB und damit der Redis Prozess die Last wenn dort die Daten auch lagen. Wenn das jetzt wieder in die File DB kommt die vom controller Prozess dann gemanaged wird dann geht die CPU Last hierauf über und ist normalerweise mehr als Redis weil redis "nativ C++" ist nd kein interpretiertes Javascript.
Da müsste Ihr aufpassen nicht Äpfel mit Birnen zu vergleichen
-
@apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:
@lonsimbt sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:
Die CPU-Auslastung geht - insbesondere seit auch die States in der jsonl-DB liegen - spürbar nach oben (~+40 % von 3,25% auf 4,5%).
Naja das ist aber zu erwarten!!
Bisher hatte die Redis DB und damit der Redis Prozess die Last wenn dort die Daten auch lagen. Wenn das jetzt wieder in die File DB kommt die vom controller Prozess dann gemanaged wird dann geht die CPU Last hierauf über und ist normalerweise mehr als Redis weil redis "nativ C++" ist nd kein interpretiertes Javascript.
Da müsste Ihr aufpassen nicht Äpfel mit Birnen zu vergleichen
Bei mir laufen (bzw. liefen) redis und iobroker im gleichen Container, d. h. der Unterschied dürfte tatsächlich aus dem höheren Aufwand stammen, den der Javascript-Code erzeugt. Ich persönlich finde den Anstieg um gut einen Prozentpunkt auch überhaupt nicht tragisch. Mein kleiner Server langweilt sich sowieso den Großteil der Zeit... Ich wollte nur meine Beobachtungen kundtun, da mit dem neuen Datenbankformat offensichtlich unterschiedliches Verhalten beobachtet wurde.
Gruß Marco
-
Hi...ich habe einen seltsamen Fehler nach dem Update von JARVIS auf 2.2.0, wobei der Update an sich keinen Fehler erzeugt hat.
2021-02-25 08:05:30.352 - info: host.MSNUC-IOB instance system.adapter.jarvis.0 started with pid 3993 2021-02-25 08:05:31.387 - error: host.MSNUC-IOB Caught by controller[0]: /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:428 2021-02-25 08:05:31.387 - error: host.MSNUC-IOB Caught by controller[0]: throw new Error(`Unknown states type: ${config.states.type}: ${err.message}`); 2021-02-25 08:05:31.388 - error: host.MSNUC-IOB Caught by controller[0]: ^ 2021-02-25 08:05:31.388 - error: host.MSNUC-IOB Caught by controller[0]: Error: Unknown states type: jsonl: Cannot find module '@iobroker/db-states-jsonl' 2021-02-25 08:05:31.388 - error: host.MSNUC-IOB Caught by controller[0]: Require stack: 2021-02-25 08:05:31.388 - error: host.MSNUC-IOB Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js 2021-02-25 08:05:31.388 - error: host.MSNUC-IOB Caught by controller[0]: - /opt/iobroker/node_modules/@iobroker/adapter-core/build/utils.js 2021-02-25 08:05:31.388 - error: host.MSNUC-IOB Caught by controller[0]: - /opt/iobroker/node_modules/@iobroker/adapter-core/build/index.js 2021-02-25 08:05:31.389 - error: host.MSNUC-IOB Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.jarvis/jarvis.js 2021-02-25 08:05:31.389 - error: host.MSNUC-IOB Caught by controller[0]: at new Adapter (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:428:19) 2021-02-25 08:05:31.389 - error: host.MSNUC-IOB Caught by controller[0]: at startAdapter (/opt/iobroker/node_modules/iobroker.jarvis/jarvis.js:69:12) 2021-02-25 08:05:31.389 - error: host.MSNUC-IOB Caught by controller[0]: at Object. (/opt/iobroker/node_modules/iobroker.jarvis/jarvis.js:555:2) 2021-02-25 08:05:31.389 - error: host.MSNUC-IOB Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:1063:30) 2021-02-25 08:05:31.389 - error: host.MSNUC-IOB Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) 2021-02-25 08:05:31.390 - error: host.MSNUC-IOB Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:928:32) 2021-02-25 08:05:31.390 - error: host.MSNUC-IOB Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:769:14) 2021-02-25 08:05:31.390 - error: host.MSNUC-IOB Caught by controller[0]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) 2021-02-25 08:05:31.390 - error: host.MSNUC-IOB Caught by controller[0]: at internal/main/run_main_module.js:17:47 2021-02-25 08:05:31.390 - error: host.MSNUC-IOB instance system.adapter.jarvis.0 terminated with code 1 (JS_CONTROLLER_STOPPED) 2021-02-25 08:05:31.391 - info: host.MSNUC-IOB Restart adapter system.adapter.jarvis.0 because enabled
Ich habe mal versucht bei JARVIS einen Upload oder auch zu deinstallieren, bekomme aber dann:
$ ./iobroker upload jarvis ERROR: Installation broken or unknown states type: jsonl configured. ERROR: process exited with code 101 $ ./iobroker del jarvis ERROR: Installation broken or unknown states type: jsonl configured. ERROR: process exited with code 101
Hat jemand eine Idee?
UPDATE: Jetzt ist alles kaputt....iobroker startet nicht mehr
root@MSNUC-IOB:/opt/iobroker# iobroker start root@MSNUC-IOB:/opt/iobroker# iobroker status Installation broken or unknown states type: jsonl configured. root@MSNUC-IOB:/opt/iobroker#
-
UPDATE: Ich bin per Snapshot zurückgegangen und habe JARVIS erneut upgedatet. Dies scheint tatsächlich den iobroker zu "zerstören". Die Fehler kommen wieder und iobroker lässt sich nach dem stoppen nicht mehr starten.
UPDATE2: Ich bin noch weiter zurückgegangen, also vor der JSONL Umstellung. Dann funktioniert der Update. Schon seltsam..
-
Abseits der obigen Probleme, habe ich auch Änderungen in der CPU Last und dem IO Verhalten feststellen können.
CPU Last hat sich verdoppelt, ok im unter 10% Bereich, aber immerhin.
IO hat sich dagegen halbiert. Ich hatte redis/file mit optimierten redis parameter.Redis und iobroker auf dem selben Host.
-
@msauer sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:
seltsamen Fehler nach dem Update von JARVIS auf 2.2.0
welche Version ist es denn genau ? Ich habe hier noch Jarvis 2.2.0-beta.17 laufen und hatte bisher noch kein Problem nach der Umstellung auf jsonl. Allerdings habe ich nach der Umstellung auf jsonl noch kein Update bei Jarvis gemacht.
-
@dslraser Heute stand ein "normales" Update 2.2.0 in der Liste an. Das habe ich dann installiert.
BETA/Latestiobroker Update jarvis from @2.2.0-beta.49 to @2.2.0
-
@msauer
Bei mir ist das jarvis-Update von 2.2.0b39 auf 2.2.0 problemlos durchgelaufen. Jarvis startet ohne Probleme, keine Auffälligkeiten oder Fehlermeldungen im Log auch nicht nach einem Neustart des Containers. -
@msauer habe ebenfalls gerade das Update durchgeführt, ohne jegliche Probleme
-
@msauer Wie hast Du jsonl denn installiert? Nach der Anleitung oben??
-
@apollon77 ja, exakt daran gehalten...umgestellt von redis/file auf jsonl/jsonl
-
@apollon77 wow..ich kann es jetzt sogar reproduzieren...
Bin ja per snapshot zurück und habe diesmal jsonl/files umgestellt. Nach Neustart war alles gut. Habe dann einen Adapter "alias-Manager" installiert. und siehe da$ ./iobroker upload alias-manager ERROR: Installation broken or unknown states type: jsonl configured. ERROR: process exited with code 101
wenn ich jetzt neu starte, geht garantiert wieder nichts mehr..
Ein Adapter restart reicht schon, das diese die oben genannte lange Fehlermeldung bringt -
ohoh...bin auch gerade eben auf jsonl ^^ hab aber natürlich nen Backup gemacht vorher
-
@msauer hast du bei der Umstellung eine Migration angestoßen oder ohne?