NEWS
js controller 100% CPU
-
hallo #zsmmn,
habe ein Problem mit dem js.controller.
Vor einiger Zeit schon Probleme mit dem js-controller gehabt. Er verursachte 100% CPU Last auf einem Kern. Der admin lief nur noch sehr zäh. Objektbaum ging gar nicht mehr.
Zuerst hab ich alle meine scripte auf loops untersucht aber nix war dabei was die Last ausgelöst haben könnte. Hätte mich auch sehr gewundert da ich lange nichts mehr an den scripten geändert hatte.
Dann habe ich die Adapter einzeln versucht und festgestellt das mqtt als Version 3.14 die Ursachte war. Ein downgrade aus letzte stable hat geholfen. Alles lief wieder normal.
Gestern habe ich dann ein neues mqtt device hinzugefügt und hatte wieder sobald ich den Objektbaum aufgerufen habe 100% CPU Last. Nur Neustart ging dann noch.
Objektbaum lies sich wieder nicht aufrufen, auch nicht mit deaktiviertem mqtt Adapter.
Hatte nun meine ganze iobroker im Verdacht. iob fix hat aber nichts geändert.
Habe nun meinen proxmox Container neu mit debian 12.7 aufgesetzt. Nach dem Restore leider wieder 100% CPU beim ersten Aufruf vom Objektbaum.Kann mir im Moment nur mit Backup von vor dem neuen mqtt device helfen. Sobald ich da das neue device wieder anlege wieder der gleiche Fehler.
anbei diag vom Container vor dem neuen mqtt device.
diag.txt
Weiss jemand Rat? -
wäre dann eine überschrift wie
mqtt verursacht 100% cpu vom js controller
besser. nicht jeder liest alles.
-
@oliverio sagte in js controller 100% CPU:
mqtt verursacht 100% cpu vom js controller
sry, ganz vergessen zu erwähnen:
Habe auch versucht, anstatt dem mqtt Adapter die Daten an den sonoff Adapter per mqtt zu senden, verursacht gleichen Fehler.
Ausserdem habe ich beim der frischen Installation nur mqtt Adapter installiert vor dem restore und das device ausprobiert. Lief.
Daher liegt der Fehler wohl nicht beim mqtt Adapter -
Diese Repositories sind sicher nicht normal:
│ 0 │ 'sources' │ 'conf/sources-dist.json' │ false │ │ 1 │ 'online' │ 'https://raw.githubusercontent.com/ioBroker/ioBroker.repositories/master/sources-dist.json' │ false │
sollten aber mal mit der cpu Last nichts zu tun haben.
Fast 86600 states kommen mir ein wenig viel vor. Bist du sicher dass der mqtt Adapter da nicht wie ein wilder States einrichtet weil irgendwas unendlich viele Topics sendet?
Und versuch mal die Objekte nur Ebene für Ebene zu öffnen - nicht alle Ebenen auf einmal. Bei sehr großer Anzahl von Objekten kann das Öffnen aller Objekte ohne zu filtern zum Absturz führen.
Und zuletzt:
- Was seht im Log?
- Stopp mal ALLE Adapter und starte dann nur den mqtt um zu verifizieren dass es in dessen Umfeld klemmt.
Den Satz versteh ich in deinem Posting nicht:
Dann habe ich die Adapter einzeln versucht und festgestellt das mqtt als Version 3.14 die Ursachte war.
Der mqtt Adapter ist derzeit auf Release auf 6.1.4 im Stable ist 6.1.2 installiert hast du 6.0.0.
Bitte sag mal bei welcher Version du das Problem nun hattest.Ev ist auch der für dich von Interesse:
https://github.com/ioBroker/ioBroker.mqtt/issues/534Wieviele cleintzs kennt dein broker?
EDIT:
Daher liegt der Fehler wohl nicht beim mqtt Adapter
Nö - aber auch den js-controller würd ich da nicht als Ursache vermuten. Sieht eher so aus als würde in deinem Netzwerk irgendwas mit mqtt Paketen herumwerfen oder sonstwas auf den mqtt Port schicken.
@thomas-braun
Wenn dir mal fad ist wär es ev. sinnvoll die Anzahl der States je Instanz im diag zu loggen. Damit könnte man extreme Ausreißer sehen. Keine Ahnung ib das trivial geht und ob dass auch mit vernünftiger Laufzeit ginge. Nur so ne Idee / Anregung. -
@mcm1957 sagte in js controller 100% CPU:
Fast 86600 states kommen mir ein wenig viel vor. Bist du sicher dass der mqtt Adapter da nicht wie ein wilder States einrichtet weil irgendwas unendlich viele Topics sendet?
kann schon sein das es so viele sind, habe sourecanalytix Adapter mit vielen Verbrauchern drin
Und versuch mal die Objekte nur Ebene für Ebene zu öffnen - nicht alle Ebenen auf einmal. Bei sehr großer Anzahl von Objekten kann das Öffnen aller Objekte ohne zu filtern zum Absturz führen.
Es scheiter ja bereits beim Aufrufen der Seite, der Baum öffnet sich ja gar nicht. Menü links, sonst leere seite und drehender Kreis
Und zuletzt:
- Was seht im Log?
- Stopp mal ALLE Adapter und starte dann nur den mqtt um zu verifizieren dass es in dessen Umfeld klemmt.
schau mal meinen Nachtrag zum 1. Post oben, der mqtt Adapter ist es nicht und es funktionert mit dem device in einer frischen Installation nur mit mqtt Adapter.
-
habe jetzt auch mal folgendes probiert:
restore von altem Container und dort mal alle Adapter bis auf admin ausgeschaltet.
iobroker.js-controller und io.admin.0 sind entspannt.
Sobald ich die Objektseite aufrufe gehen beide auf 100% Last. Die Seite öffnet sich nicht. Auf der gleichzeitig in anderem Browsertab geöffnetes Instanzenseite sieht man wie der admin adapter rot wird. Die Objektseite baut sich nicht auf.
Nach einigen Minuten hören beide Prozesse Last zu verursachen. Seiten nicht erreichbar, wahrscheinlich weil admin Adapter abgestürzt ist.
iob start admin.0 startet den admin wieder. Last der Prozesse wieder normal. Aufruf der Objektseite provoziert wieder Abbruch.
Hier Log:50 Log-Größe: 12.5 KB Zeit host.iobroker 2025-08-05 13:06:33.973 error cannot call visUtils: Cannot read properties of undefined (reading 'trim') admin.0 2025-08-05 13:06:29.215 debug Search can't be optimized because wildcard not at the end, fallback to keys!: function(doc) { if (doc.type === 'state') emit(doc._id, doc) } admin.0 2025-08-05 13:06:28.427 debug Search can't be optimized because wildcard not at the end, fallback to keys!: function(doc) { if (doc.type === 'state') emit(doc._id, doc) } admin.0 2025-08-05 13:06:27.427 debug 2025-08-05T11:06:27.427Z Request authenticate [system.user.admin] admin.0 2025-08-05 13:06:27.421 info ==> Connected system.user.admin from ::ffff:192.168.2.10 admin.0 2025-08-05 13:06:26.270 info <== Disconnect system.user.admin from ::ffff:192.168.2.10 admin admin.0 2025-08-05 13:06:26.270 debug Disable logging, because no one socket connected admin.0 2025-08-05 13:06:26.258 info ==> Connected system.user.admin from ::ffff:192.168.2.10 admin.0 2025-08-05 13:06:26.115 info <== Disconnect system.user.admin from ::ffff:192.168.2.10 admin admin.0 2025-08-05 13:06:26.114 debug Disable logging, because no one socket connected host.iobroker 2025-08-05 13:06:25.665 error cannot call visUtils: Cannot read properties of undefined (reading 'trim') admin.0 2025-08-05 13:06:21.182 debug Search can't be optimized because wildcard not at the end, fallback to keys!: function(doc) { if (doc.type === 'state') emit(doc._id, doc) } admin.0 2025-08-05 13:06:21.128 debug Please add to "system.adapter.vis-players" common.adminUI={"config":"none"} admin.0 2025-08-05 13:06:21.128 debug Please add to "system.adapter.vis-materialdesign" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.128 debug Please add to "system.adapter.vis-inventwo" common.adminUI={"config":"materialize","tab":"materialize"} admin.0 2025-08-05 13:06:21.128 debug Please add to "system.adapter.sourceanalytix" common.adminUI={"config":"materialize","custom":"json"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.tuya" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.whatsapp-cmb" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.whatsapp-cmb" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.weatherunderground" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.vis-jqui-mfd" common.adminUI={"config":"none"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.vis-history" common.adminUI={"config":"none"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.unifi" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.sourceanalytix" common.adminUI={"config":"materialize","custom":"json"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.rickshaw" common.adminUI={"config":"none"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.nuki-extended" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.nina" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.mobile" common.adminUI={"config":"none"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.knx" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.iot" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.icons-mfd-svg" common.adminUI={"config":"html"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.flot" common.adminUI={"config":"none"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.feiertage" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.127 debug Please add to "system.adapter.alexa2" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:21.126 debug Please add to "system.adapter.denon" common.adminUI={"config":"materialize"} admin.0 2025-08-05 13:06:20.273 debug Search can't be optimized because wildcard not at the end, fallback to keys!: function(doc) { if (doc.type === 'state') emit(doc._id, doc) } host.iobroker 2025-08-05 13:06:18.909 error cannot call visUtils: Cannot read properties of undefined (reading 'trim') admin.0 2025-08-05 13:06:18.326 debug 2025-08-05T11:06:18.326Z Request authenticate [system.user.admin] admin.0 2025-08-05 13:06:18.318 info ==> Connected system.user.admin from ::ffff:192.168.2.10 admin.0 2025-08-05 13:05:52.481 info <== Disconnect system.user.admin from ::ffff:192.168.2.10 admin admin.0 2025-08-05 13:05:52.481 debug Disable logging, because no one socket connected admin.0 2025-08-05 13:04:17.480 info ==> Connected system.user.admin from ::ffff:192.168.2.10 admin.0 2025-08-05 13:03:36.261 info <== Disconnect system.user.admin from ::ffff:192.168.2.10 admin admin.0 2025-08-05 13:03:36.260 debug Disable logging, because no one socket connected host.iobroker 2025-08-05 13:01:43.109 error cannot call visUtils: Cannot read properties of undefined (reading 'trim')
-
@quinti sagte in js controller 100% CPU:
Sobald ich die Objektseite aufrufe gehen beide auf 100% Last
Schon mal den Browser-Cache geleert, den Inkognito-Modus oder einen anderen Browser getestet?
-
Problem schein gefunden, es liegt wohl am Browser!!!
Nutze überlicherweise firefox.
Hab nun mal das ganze mit Edge probiert. Da kann ich die Objekt-Seite sofort öffnen!!!
stay tuned... -
@codierknecht sagte in js controller 100% CPU:
@quinti sagte in js controller 100% CPU:
Sobald ich die Objektseite aufrufe gehen beide auf 100% Last
Schon mal den Browser-Cache geleert, den Inkognito-Modus oder einen anderen Browser getestet?
2 doofe, ein Gedanke
-
@quinti das ist definitiv kein Bug von iobroker (js-controller)
ich verschiebe das malPS
@oliverio sagte in js controller 100% CPU:
nicht jeder liest alles.
gilt auch für angehängte txt-files!
bitte in code-tags posten -
@homoran
Problem gelöst, cache und cookies gelöscht und es läuft wieder, setzte Titel auf Gelöst:
Werde nächstes mal code-tags nutzenbtw, so bin ich wenigstens zu einer frischen Installation gekommen
Danke an alle!
-
@quinti sagte in js controller 100% CPU:
Habe nun meinen proxmox Container neu mit debian 12.7 aufgesetzt.
Im iob diag wird allerdings
Operating System: Ubuntu 22.04.5 LTS
und
Operating System codenamed 'jammy' is an aging Ubuntu release! Please upgrade to the latest LTS release 'noble' in due time!
festgestellt. -
@thomas-braun
das diag war vom alten container, der neue hat nun debian 12.7