NEWS
[gelöst] ioBroker lässt RAM und Swap Speicher überlaufen
-
Bei mir läuft ioBroker auf einem RaspberryPi. Ich habe dort das Problem, dass auf dem Raspi immer wieder mal der RAM und recht bald drauf der Swap-Speicher voll läuft. Das Betriebssystem hängt sich dann mit dieser Meldung auf:
Out of memory: Killed process 821 (io.javascript.0) total-vm:348272kB, anon-rss:170408kB, file-rss:0kB, shmem-rss:0kB, UID:1001 pgtables:668kB oom_score_adj:0
Nun könnte ich die Swap-Größe zwar vergrößern, aber das eigentliche Problem bleibt wohl bestehen. Besonders viele Aufgaben hat ioBroker bei mir gar nicht zu bewältigen. Ich hoffe jemand kann mich hier ein wenig navigieren, wo ich den Fehler suchen sollte.
Was mich für's erste schon mal stutzig macht ist, dass beim Aufruf vom Tool htop mehrere Prozess-IDs für die Adapter angezeigt werden. Das Tool top zeigt jedoch immer nur eine ID pro Adapter. (Ich muss allerdings dazu sagen, dass ich das Tool htop erst neu entdeckt habe und damit noch nicht sehr erfahren bin.)
-
@hanswurst was sagt
iobroker list instances
?@hanswurst sagte in ioBroker lässt RAM und Swap Speicher überlaufen:
immer wieder mal
kannst du das präzisieren?
-
1GB RAM könnte schlicht und einfach zu wenig sein. Mein System braucht z. B. so 1,7 GB RAM im Dauerbetrieb, wenn ein Backup läuft entsprechend auch deutlich mehr.
echad@chet:/opt/iobroker $ free -htm total used free shared buff/cache available Mem: 7.7Gi 1.7Gi 5.1Gi 0.0Ki 901Mi 5.9Gi Swap: 99Mi 0B 99Mi Total: 7.8Gi 1.7Gi 5.2Gi
-
kannst du das präzisieren?
Fällt mir schwer zu präzisieren wie viele Tage/Wochen dazwischen vergingen. Ich vermute es war nicht unbedingt Zeitabhänging, sondern passierte eher dann, wenn ich im ioBroker-Admin gearbeitet hatte (sorry, dass ich da so ungenau bin).
Was aber sehr gut reproduzierbar war:
Bis heute früh hatte ich noch eine Swap-Größe von 100MB (default Einstellung). Immer wenn ich versucht hatte den Adapter Lovelace zu installieren, dann kam es zu dieser Fehlermeldung.Jetzt, nachdem ich den Swap auf 512MB und das vm.swappiness-Level von 60 auf 20 geändert habe, konnte ich den Adapter Lovelace installieren. Zusätzlich hatte ich in dieser Zeit auch noch ein paar Adapter pausieren lassen.
iobroker list instances:
-
@thomas-braun sagte in ioBroker lässt RAM und Swap Speicher überlaufen:
free -htm
Ohje, das klingt ja ungünstig. Auf jeden Fall schon mal danke schön für das Feedback.
So sieht es bei mir gerade aus (nach einer uptime von 1,5 h):
$ free -htm total used free shared buff/cache available Mem: 923Mi 647Mi 98Mi 0.0Ki 177Mi 272Mi Swap: 511Mi 131Mi 380Mi Total: 1.4Gi 778Mi 479Mi
-
@hanswurst Wieviele Instanzen laufen bei dir?
-
@wendy2702 sagte in ioBroker lässt RAM und Swap Speicher überlaufen:
@hanswurst Wieviele Instanzen laufen bei dir?
Gerade laufen 18 Instanzen, wovon ich aber (noch) nicht wirklich alle verwende und ein paar in stand-by setzen kann. Bin noch ein wenig am umschauen welche Adapter für mich passen und somit am experimentieren.
-
Wenn ich mich richtig entsinne gilt als Faustformel ca. 50MB pro Instanz.
@Homoran @Thomas-Braun korrigiert mich wenn ich den falschen Wert im Kopf habe.
-
@wendy2702 sagte in ioBroker lässt RAM und Swap Speicher überlaufen:
50MB pro Instanz
Ja, das kommt auch ziemlich genau hin mit dem was mir im ioBroker angezeigt wird. Bis auf der javascript Adapter. Der hat das doppelt bis dreifache.
-
@hanswurst sagte in ioBroker lässt RAM und Swap Speicher überlaufen:
50MB pro Instanz
Ja, das kommt auch ziemlich genau hin mit dem was mir im ioBroker angezeigt wird. Bis auf der javascript Adapter. Der hat das doppelt bis dreifache.
17x50 + 100 = 950
Und dann läuft da ja noch das Betriebssystem. Damit stehst du unter der Decke. Da ist kein Platz mehr für irgendwas. -
@hanswurst das sind deutlich zu viele Instanzen für 1GB RAM!
Bei 12-15 ist Schluss mit problemlosstatt spoiler wären code-tags besser gewesen.
-
@homoran sagte in ioBroker lässt RAM und Swap Speicher überlaufen:
das sind deutlich zu viele Instanzen für 1GB RAM!
Bei 12-15 ist Schluss mit problemlosOk. Ich danke euch für die gute Hilfe. Dann weiß ich nun zumindest woran ich bin. Werde mir dann überlegen welche Adapter ich nicht mehr benötige.
-
Oder auf einen größeren Rechner wechseln.
-
@hanswurst sagte in [gelöst] ioBroker lässt RAM und Swap Speicher überlaufen:
Werde mir dann überlegen welche Adapter ich nicht mehr benötige.
wobei backitup in dem Moment des Backups massiv Speicher benötigt.
das war auch der Hintergedanke bei der Frage nach dem Zeitpunkt des Swappens -
@homoran sagte in ioBroker lässt RAM und Swap Speicher überlaufen:
wobei backitup in dem Moment des Backups massiv Speicher benötigt.
Ist vielleicht auch eine ganz gute Idee sich diese Werte in einem Diagramm darstellen zu lassen. Dann hätte man mehr überblick ob der Speicher mal vollgelaufen ist. Habe mir auch schon überlegt ob ich mir dann gleich eine Nachricht schicken lassen sollte. Mal schauen.