NEWS
io.javascript.0 immer bei rund 100%
-
Hallo,
mir ist erst von kurzem aufgefallen das die Instanz unter top immer rund 100% CPU-Last anzeigt.
Ich hatte irgend wo gelesen das es mal ein Problem mit einem älteren NPM gab.
Heute habe ich dann mittels Backup und Restore mal einen neuen Container mit neustem Docker-Container gemacht aber geändert hat das nichts.
Mein IOB läuft im Docker unter Debian 12.
Der Dockercontainer ist latest-10 also 10.0.0 von buanet
js-controller ist 7.0.6
node-js ist v20.18.2
NPM ist 10.8.2
Die Maschine ist eine xen-domu mit 16 GB Ram und 2 CPU
Plattform: docker (official image - v10.0.0)Hier nochmal aus dem Info Panel der Übersicht kopiert:
Betriebssystem: linux
Architektur: x64
CPUs: 2
Geschwindigkeit: 0 MHz
Modell: AMD EPYC 7251 8-Core Processor
RAM: 15.6 GB
System-Betriebszeit: 10 T. 01:33:55
Node.js: v20.18.2
time: 1737905656579
timeOffset: -60
NPM: 10.8.2
Adapter-Anzahl: 558
Datenträgergröße: 49.1 GB
Freier Festplattenspeicher: 23.1 GB
Aktive Instanzen: 2
Pfad: /opt/iobroker/
Betriebszeit: 00:01:21
aktiv: trueUnd hier mal die Ausgabe von Top direkt nach dem Neustart des Containers ohne aktivierte Skripte.
top - 16:15:12 up 10 days, 2:14, 9 users, load average: 2.33, 2.03, 1.86 Tasks: 121 total, 6 running, 115 sleeping, 0 stopped, 0 zombie %CPU(s): 74.5 us, 22.4 sy, 0.0 ni, 0.2 id, 0.0 wa, 0.0 hi, 3.0 si, 0.0 st MiB Spch: 15994.0 total, 311.0 free, 1884.8 used, 13971.0 buff/cache MiB Swap: 4096.0 total, 4049.3 free, 46.7 used. 14109.1 avail Spch PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL 2241923 1000 20 0 21.4g 248312 44672 R 83.7 1.5 11:43.50 io.javascript.0 2225255 1000 20 0 21.7g 613996 46448 R 53.8 3.7 7:11.49 iobroker.js-con 2229351 1000 20 0 21.0g 103048 44452 R 42.5 0.6 4:01.07 io.valuetracker 2229040 1000 20 0 21.1g 99580 44452 R 10.0 0.6 1:08.55 io.history.0 2225323 1000 20 0 21.4g 201108 51760 S 2.0 1.2 0:36.54 io.admin.0 2229131 1000 20 0 21.1g 83604 44880 S 1.0 0.5 0:20.08 io.modbus.1 2229166 1000 20 0 21.1g 81400 44848 S 0.7 0.5 0:13.92 io.modbus.2
Hat vielleicht jemand eine Idee?
-
@tasuanetrukiat sagte: eine Idee?
Deaktiviere mal "valuetrackerovertime.0" und schau danach wieder mit Top.
-
@paul53
Keine Änderung:top - 18:29:26 up 10 days, 3:03, 9 users, load average: 1.60, 1.59, 1.78 Tasks: 120 total, 3 running, 117 sleeping, 0 stopped, 0 zombie %CPU(s): 50.1 us, 12.3 sy, 0.0 ni, 35.8 id, 1.4 wa, 0.0 hi, 0.2 si, 0.3 st MiB Spch: 15994.0 total, 460.0 free, 1638.6 used, 14068.3 buff/cache MiB Swap: 4096.0 total, 4049.8 free, 46.2 used. 14355.3 avail Spch PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL 2264574 1000 20 0 21.3g 151716 50932 R 117.6 0.9 0:26.87 io.backitup.0 2250871 1000 20 0 21.5g 379428 46308 S 2.0 2.3 7:25.60 iobroker.js-con 2251246 1000 20 0 21.1g 85848 44856 S 1.0 0.5 0:23.01 io.modbus.1 2251043 1000 20 0 21.4g 242744 44692 S 0.7 1.5 40:49.90 io.javascript.0 2251291 1000 20 0 21.1g 81672 44860 S 0.7 0.5 0:15.79 io.modbus.2 15 root 20 0 0 0 0 R 0.3 0.0 17:11.60 rcu_preempt 2250987 1000 20 0 21.1g 86308 44488 S 0.3 0.5 1:18.33 io.history.0 2251351 1000 20 0 21.0g 95864 44500 S 0.3 0.6 0:23.08 io.mqtt.0 2252415 1000 20 0 21.2g 123656 46064 S 0.3 0.8 0:07.06 io.web.0
-
@tasuanetrukiat
Was mir noch gerade aufgefallen ist das im Admin unter Instanzen diese immer wieder kurz mal scheinbar gestoppt wird, aber danach wieder läuft (Zeile wird kurz ein paar Sekunden rot) -
@tasuanetrukiat
Läuft da ein Script amok?
Stoppe mal die Scripte und nehme die nach und nach wieder in Betrieb, um da ein evtl. fehlerhaftes zu finden. -
@Codierknecht
Hatte geschrieben das kein Skript läuft:
Hatte alle abgeschaltet, dann den ganzen container mal neu gestartet aber trotzdem geht die CPU wieder auf 100 %. Wie können nicht laufende Scripte da Amok laufen?
War aber auch meine erste Idee. Danach hatte ich gedacht, vielleicht ein wenig alt alles und ein bug in irgendeinem Programm. Daher das Upgrade, aber ohne Auswirkung hier. -
@tasuanetrukiat sagte in io.javascript.0 immer bei rund 100%:
2264574 1000 20 0 21.3g 151716 50932 R 117.6 0.9 0:26.87 io.backitup.0
Das war jetzt der falsche Zeitpunkt.
Da lief jetzt backitup, was schon einiges an Ressourcen zieht.
Mach mal nochmal, ohne das backitup läuft -
@tasuanetrukiat sagte in io.javascript.0 immer bei rund 100%:
Hatte geschrieben das kein Skript läuft:
Sorry überlesen
Auch keine globalen Scripte? Die übersieht man gerne, wenn der Expertenmodus inaktiv ist (so denn welche existieren).
-
Die CPU ist jetzt runter:
Ich habe mal ein paar Scripte mittels export gesichert und dann gelöscht.
Nach ein paar Skripten löschen ist mir aufgefallen das die Auslastung der CPU gesunken ist.
Lade importiere jetzt ein Skript nach dem anderen wieder rein und melde mich dann.Die restlichen Skripte sind auch wieder gestartet und es sieht weiterhin gut aus.
top - 18:47:05 up 10 days, 3:20, 9 users, load average: 0.10, 0.22, 0.77 Tasks: 120 total, 3 running, 117 sleeping, 0 stopped, 0 zombie %CPU(s): 1.8 us, 2.2 sy, 0.0 ni, 94.8 id, 1.2 wa, 0.0 hi, 0.0 si, 0.0 st MiB Spch: 15994.0 total, 241.9 free, 1618.9 used, 14306.0 buff/cache MiB Swap: 4096.0 total, 4049.8 free, 46.2 used. 14375.0 avail Spch PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL 2250871 1000 20 0 21.5g 373040 46308 S 1.0 2.3 7:52.16 iobroker.js-con 2251246 1000 20 0 21.1g 85288 44856 S 0.7 0.5 0:30.00 io.modbus.1 2251351 1000 20 0 21.0g 96312 44500 S 0.7 0.6 0:30.36 io.mqtt.0 668 root 20 0 1534220 48960 16684 S 0.3 0.3 28:12.51 dockerd 2250987 1000 20 0 21.1g 87888 44488 S 0.3 0.5 1:24.85 io.history.0 2251043 1000 20 0 21.4g 206636 44692 S 0.3 1.3 40:58.15 io.javascript.0 2251291 1000 20 0 21.1g 82440 44860 S 0.3 0.5 0:21.23 io.modbus.2 1 root 20 0 168908 6508 4348 S 0.0 0.0 4:03.92 systemd
-
@tasuanetrukiat sagte: Keine Änderung:
Wesentliche Änderung! Backitup greift sich gerade die Ressourcen. Javascript nicht mehr.
@codierknecht sagte in io.javascript.0 immer bei rund 100%:
Auch keine globalen Scripte?
Die können ohne ein anderes Skript nicht laufen.
-
@codierknecht
Ich hatte den Expertenmodus noch nie an. Muss ich mal nachsehen was man da so entdeckt. -
@tasuanetrukiat sagte in io.javascript.0 immer bei rund 100%:
Ich hatte den Expertenmodus noch nie an. Muss ich mal nachsehen was man da so entdeckt.
Wenn Du ihn nicht brauchst, lass ihn aus.
Damit macht man auch schnell mal was kaputt -
@tasuanetrukiat
Ich habe auch alle exportierten und gelöschten Skripte wieder angelegt und importiert.
Aber weiterhin ist die CPU-Belegung bei nur >2 % obwohl wieder alles gestartet wurde wie bisher.Wer weiss was da nicht in Ordung war. Jedenfalls ist das Problem gelöst:
Lösung war:
Skripte zum Teil exportiert, gelöscht, neu angelegt und importiert.Danke für die Ideen und Hilfestellung.
-
@tasuanetrukiat sagte in io.javascript.0 immer bei rund 100%:
Wer weiss was da nicht in Ordung war
Kann alles Mögliche sein.
Beobachte das mal eine Weile. Nicht dass sich da wieder etwas "aufschaukelt".Gut möglich, dass in mindestens einem der Scripte ein Fehler steckt, der sich erst bei bestimmten Konstellationen bemerkbar macht.
Klassische Kandidaten dafür sind mögliche Endlosschleifen, Rekursionen, Trigger in Trigger, nicht beendete Timeouts usw. -
Eher schon spät aber noch ne Nachfrage:
Hast du nach dem Stoppen aller Scripte im Adapter auch mal den ganzen Rechner (nicht nur ioBroker) neu gestartet? Es kann ja auch sein, dass ein Prozess amok gelaufen ist den ioBroker gar nicht mehr als einen eigenen erkannt hat. Und der könnte dann nur z.B. manuell gestoppt werden oder ebern durch einen Reboot des Betriebssystems.