NEWS
Memory Leak lässt iobroker Master abstürzen
-
Systemdata Bitte Ausfüllen Hardwaresystem: Synology 1221+ Arbeitsspeicher: 3 GB Festplattenart: 16 GB VM HDD Betriebssystem: VM Ubuntu LTS 20.10 Node-Version: v12.20.2 Nodejs-Version: v12.20.2 NPM-Version: 6.14.11 Installationsart: Skript Image genutzt: Nein Hallo zusammen,
mit dem neusten Installtionsskript in einer Master/Slave Umgbung, habe ich folgendes Phänomen.
Die opbroker.js-controller Instanzen brauchen innerhalb kürzester Zeit, die der VM bereitgestellten 3 GB Arbeitsspeicher auf.
Anschließend stürzt iobroker ab und startet neu.
Die VM ist erreichbar, reagiert allerdings sehr träge, während der Arbeitsspeicher aufgebraucht ist, logisch.Installiert ist lediglich der BLE Adapter, der sowohl auf der Master, als auch auf der Slave Instanz läuft.
Zusätzlich schreibt der Master die empfangenen BLE Daten in eine Influx DB.Die Abstürze folgen im Minutentakt.
Lösung:
Die Zeit auf Master und Slave liefen falsch. Nach Korrektur und Neustart beider Systeme, läuft nun seit einem Tag alles wieder sauber.
Vielen Dank für die schnelle Reaktion der Forenmitglieder.EDIT: Rechtschreibung, iobroker status, Abfrage "ps auxww | grep io", iobroker Log
-
Hast du beim ble in den Objekten
ble.0.options.allowNewDevices
auf false gesetzt? -
@jack-0 Kannst du mir sagen, weshalb bei dir fünf js-controller laufen?! Benutzt du compact Mode?
Ach ja, und alle Adapter scheint es auch zirka 5x zu geben...
-
@unclesam
Das ist falsch interpretiert von dir.
Bei mir laufen dann 1,2,3 ganz viele...528 iobroker 20 0 233M 105M 27988 S 13.5 2.7 2h51:55 iobroker.js-controller 544 iobroker 20 0 233M 105M 27988 S 0.0 2.7 0:00.00 iobroker.js-controller 545 iobroker 20 0 233M 105M 27988 S 3.4 2.7 14:38.05 iobroker.js-controller 546 iobroker 20 0 233M 105M 27988 S 3.0 2.7 14:37.65 iobroker.js-controller 547 iobroker 20 0 233M 105M 27988 S 1.9 2.7 14:36.43 iobroker.js-controller 548 iobroker 20 0 233M 105M 27988 S 2.6 2.7 14:38.44 iobroker.js-controller 549 iobroker 20 0 233M 105M 27988 S 0.0 2.7 0:00.00 iobroker.js-controller 627 iobroker 20 0 233M 105M 27988 S 0.0 2.7 1:08.95 iobroker.js-controller 628 iobroker 20 0 233M 105M 27988 S 0.0 2.7 1:09.10 iobroker.js-controller 629 iobroker 20 0 233M 105M 27988 S 0.0 2.7 1:07.80 iobroker.js-controller 630 iobroker 20 0 233M 105M 27988 S 0.0 2.7 1:09.78 iobroker.js-controller
Das sind aber alles child processes.
-
@thomas-braun sagte in Memory Leak lässt iobroker Master abstürzen:
Das sind aber alles child processes.
Wofür sind denn diese Prozesse?
Und hast du das auch bei jedem Adapter, wie @Jack-0 ?
-
@unclesam Ja, natürlich:
1921 iobroker 20 0 185M 79816 28184 S 4.5 2.0 2h34:48 io.zigbee.0 1923 iobroker 20 0 185M 79816 28184 S 0.0 2.0 3:01.63 io.zigbee.0 1925 iobroker 20 0 185M 79816 28184 S 0.0 2.0 3:00.90 io.zigbee.0 1922 iobroker 20 0 185M 79816 28184 S 0.0 2.0 0:00.00 io.zigbee.0 1924 iobroker 20 0 185M 79816 28184 S 0.0 2.0 3:02.28 io.zigbee.0 1926 iobroker 20 0 185M 79816 28184 S 0.0 2.0 3:01.20 io.zigbee.0 1927 iobroker 20 0 185M 79816 28184 S 0.0 2.0 0:00.00 io.zigbee.0 1933 iobroker 20 0 185M 79816 28184 S 0.0 2.0 0:03.62 io.zigbee.0 1934 iobroker 20 0 185M 79816 28184 S 0.0 2.0 0:03.63 io.zigbee.0 1935 iobroker 20 0 185M 79816 28184 S 0.0 2.0 0:03.64 io.zigbee.0 1936 iobroker 20 0 185M 79816 28184 S 0.0 2.0 0:03.64 io.zigbee.0
-
@thomas-braun Ich habe hier aktiv nichts geändert.
Nutze lediglich das Xiaomi Plugin und die Persistenz der Influx DB -
@jack-0 Dann schau dir den Punkt an. Das ist ein Klassiker beim ble-Adapter.
-
@unclesam Compact Mode sagt mir nichts.
Kann es ein dass es durch das mehrmalige ausführen der Master Configuration dazu gekommen ist?
Wie mache ich Rückgängig? -
Was ist denn das für eine Ausgabe? Oben sehe ich htop. Der zeigt teilweise auch threadsbind sowas an.
Was sagt ein klassische „ps auxww | grep io“ ??
-
Auch wäre mal das log vom iobroker interessant zu sehen. Auch die Status Ausgabe sieht eher problematisch aus. Zeit mal ein „iobroker status“ ausgabe.
-
So meinst du das?
Bei ble1 war der Wert bereits auf false gesetzt.
Bei ble0 habe ich den Wert nun ebenfalls so gesetzt. -
@jack-0
Wieviele Obekte liegen denn nun in dem Adapter rum? -
@thomas-braun Ca. 10 Objekte pro Adapter. Alle sind Xiaomi Temp und Humidity Sensoren.
Habe ich den Wert korrekt auf "false" gesetzt?
-
@jack-0 Ja, wenn du deine gewollten bluetooth-Geräte drin hast setz das auf 'false'. Der Adapter hat die Eigenschaft, da ansonsten tausende von Objekten anzuhäufen, was dann zum Exitus führt, irgendwann.
-
@apollon77 Keine spezielle Ausgabe, "iobroker status" oder auf welchen Screenshot beziehst du dich? "ps auxww | grep io" habe ich ebenfalls im initialen Post angehangen.
-
@apollon77 Das iobroker Log habe ich im initialen Post angehängt.
-
Sowohl Master, als auch Slave liefen mit der falschen Uhrzeit.
Auf beiden Systemen habe ich diese korrigiert.
Eigentlich sollte das kein Problem darstellen, da die Zeit auf beiden System gleich falsch lief. -
@jack-0 sagte in Memory Leak lässt iobroker Master abstürzen:
Eigentlich sollte das kein Problem darstellen, da die Zeit auf beiden System gleich falsch lief
Da hast du aber dann mit externen Systemen trotzdem hassle. Die korrekte Systemzeit ist extrem wichtig!
-
@jack-0 Na dann lesen wir doch mal das Log ...
2021-02-21 02:21:39.070 - [31merror[39m: host.iobrokermaster-Server Cannot load /opt/iobroker/iobroker-data/states.json: /opt/iobroker/iobroker-data/states.json: Unexpected string in JSON at position 196716. Try last Backup!
Dein States FIle ist kaputt, daher kommt die DB nicht hoch.
Ok, das er dann überhaupt weiter macht und Adapter startet ist komisch und muss ich mir ansehen, aber damit läuft er in eine Restart schleife.
EDIT: angesehen: Strange. Er crasht wei er das states.back nicht schreiben kann weil staes.json fehlt ... grmpf. Fixen wir. Stell mal sicher das ein states.json da ist
EIn states.bak gibts scheinbar auch nicht was komisch ist. Also kannst Du nur schauen ob in iobroer-data/backup (oder so) noch ein gepacktes states File liegt. Das dann entpacken und in iobroker-data/states.json legen und dann iobroker neu starten. (vor der ganzen Aktion natürlich stoppen und zwar richtig, scheinbar laufen einige Adapter prozesse irgendwie noch sohalb. am besten nach iobroker stop dann alles sauber killen was noch läuft).
Wenn es ein sd Karten system ist ggf das Filesystem genau prüfen, nicht das das gerade "stirbt".
Weil auch komisch ist2021-02-21 00:05:36.480 - [31merror[39m: host.iobrokermaster-Server Cannot save backup file /opt/iobroker/iobroker-data/states.json.bak: ENOENT: no such file or directory, rename '/opt/iobroker/iobroker-data/states.json' -> '/opt/iobroker/iobroker-data/states.json.bak'
Das würde heissen das iobroker-data nicht da wäre ...
In den Logfiles in opt/iobroker/logkannst DU auch mal schauen wo und wann das angefangen hat.Vllt gibt das noch Anhaltspunkte was die Ursache war
Ingo