NEWS
Swap Space wächst trotz freiem Speicher
-
Irgendetwas ist faul.
Ich habe ioBroker auf einem NUC mit 16 GB Ram mit Promox.
Der ioBroker LVM habe ich 4 GB zugewiesen und Promox zeigt eine Nutzung von 1,5 GB. Dennoch wächst der genutzte Swap Speicher, was zu Folge hat, dass die Promox Admin Oberfläche immer langsam öffnet. Ich muss alle 20 Tag die iobroker LVM neu starten, weil das System dann zu träge wird.
Was ich auch bemerkt habe, ist das die object.jsonl ziemlich riesig ist.-rw-rw-r--+ 1 iobroker iobroker 9996078 Jun 19 06:07 objects.json -rw-rw-r--+ 1 iobroker iobroker 9996078 Jun 19 06:05 objects.json.bak -rw-rw-r--+ 1 iobroker iobroker 117730184 Oct 11 06:06 objects.jsonl drwxrwxr-x+ 2 iobroker iobroker 4096 Oct 11 06:14 objects.jsonl.lock drwxrwxr-x+ 2 iobroker iobroker 4096 Feb 22 2021 sayit drwxrwxr-x+ 6 root root 4096 Mar 9 2021 scripts drwxrwxr-x+ 2 iobroker iobroker 4096 Jul 28 2020 sonosCache drwxrwxr-x+ 2 iobroker iobroker 4096 Jun 14 10:46 sqlite -rw-rw-r--+ 1 iobroker iobroker 4806632 Jun 19 06:25 states.json -rw-rw-r--+ 1 iobroker iobroker 4806632 Jun 19 06:20 states.json.bak -rw-rw-r--+ 1 iobroker iobroker 5172822 Oct 11 06:13 states.jsonl drwxrwxr-x+ 2 iobroker iobroker 4096 Oct 11 06:14 states.jsonl.lock
Außerdem habe ich alle 5 Minuten ein Diskwrite von 1 MB, was definitiv zu viel ist.
Ich habe jetzt mal testhalber den History Adapter abgeschaltet.
Mal sehn, wie sich das auswirkt.Ich habe alle Updates aus dem staple Repro installiert.
-
Jetzt habe ich "iobroker restart" gemacht und der Swap Speicher ist von 70 % auf ca. 25 % abgesunken.
-
@marty56 Ich habe den ioBroker nicht als VM sondern als Container. Dort mit 6 GB und das Swap komplett abgeschaltet. Das läuft seit längerer Zeit ohne Probleme.
-
@chaot SWAP komplett deaktivieren würde ich und sollte man eigentlich auch nicht. Wenn ein Prozess doch mal mehr Speicher anfordert als verfügbar ist, werden ansonsten andere Prozesse abgeschossen. Und das kann dann auch mal die treffen, die man eigentlich durchlaufen haben möchte (iobroker-Prozesse zum Beispiel). Wenn bei @Marty56 der Swap angefasst wird, dann wäre das ansonsten bereits ein Zustand, bei dem das System ohne SWAP Prozesse wegen Speichermangel beenden würde.
@Marty56 Es wäre sinnvoller zu schauen, was Dir da den RAM aufzehrt. Beliebte Stellen sind Scripte, in denen Timeouts und Schleifen nicht "sauber" sind und immer wieder neue Loops starten, aber auch Adapter, die beim Start viel Ram anfordern, z.B. der Backitup. Bevor Du also die Symtome bekämpfst, solltest Du die Ursachen beheben. Meinem iobroker-Master (LXC unter Proxmox) habe ich 5GB Ram zugewiesen und 5GB Swap für "Notfälle". Der läuft aber wochenlang ohne den Swap anzuknabbern. Und auf dem laufen aktuell 37 Instanzen/Adapter und sehr viele Scripte (Blockly und JS).
Gruss, Jürgen -
Die letzte Zeit habe ich ein paar mal gelesen, dass User dem swap recht voll haben.
Ist das überhaupt so schlimm?
Ist dixh eigentlich eine sinnsige Sache oder?Habe grad mal geschaut. Meiner ist zu 99% voll obwohl nur 50% RAM in Nutzung sind.
Merke aber nichts von einer langsamen Bedienung. -
@david-g Wie ich eben schrieb. Der SWAP wird normalerweise erst angefasst, wenn ein Prozess mehr Speicher anfordert, als aktuell verfügbar ist. Dafür gibt es normalerweise Gründe (siehe oben).
Man kann bei den meisten Linuxoiden einstellen, wie schnell der SWAP angefasst wird, Google-Stichwort wäre hier swappiness.
Ein stabiles und sauberes System mit genügend RAM sollte im Normalfall den SWAP wirklich nur im Notfall nutzen, da es eben immer langsamer ist, Daten von der Festplatte (aus dem SWAP) wieder ins RAM zu holen und dafür andere zu swappen, als alles direkt im viel schnelleren RAM zu halten. SWAP erzeugt halt Systemlast, bremst aus und, je nach Hardware, verschleissen die Datenträger viel schneller. Auf einem Raspi mit SD-Karte beispielsweise killt extensive SWAP-Nutzung diese recht schnell.
Gruss, Jürgen -
Danke für die Antwort, hab das grad mal gegoogelt und die swapiness von 60 auf 35 gesetzt.
Hier sind die Einstellungen ganz gut beschrieben, falls es jmd. interessiert.
-
@david-g Bei mir ist swappiness unverändert auf 60 ohne dass der Swap angefasst wird. Das Anpassen der Swappiness ist eben auch eher so etwas wie reagieren auf Symptome, als Ursachen angehen. Es muss einen Grund haben, warum Swap benötigt wird, beziehungsweise, dass mehr RAM angefragt wird, als verfügbar ist. Gründe dafür siehe oben.
Gruss, Jürgen -
Das stimmt natürlich.
Hab grad nochmal genauer geschaut.
In meiner Visu stimmt was nicht ^^.
RAM liegt permanent bei ca 62-63%.
Ausschläge nach oben gibt es nicht.
Logge dem RAM alle 5 Minuten.Da wird natürlich der swap bei 60 benutzt.
Hab aber auch nur 4GB RAM. -
@david-g sagte in Swap Space wächst trotz freiem Speicher:
Hab aber auch nur 4GB RAM.
Das sollte eigentlich locker reichen und wenn es das nicht tut, hast entweder noch was anderes außer IOBroker laufen, oder ein Speicherfresser drin
-
Kleine Kleinigkeiten.
Einen Nut-Server läuft noch und eine Maria-DB fürs logging.Und wenn mich hier vermutlich alle für "steinigen" ist der Desktop mit installiert. Boot aber ins cli.
Finde es einfach zu praktisch mit dem im Raspian integrierte Tool vor Systemuodates ein Image zu erstellen (über vnc).
Natürlich auch ein tägliches Backup mit BackupIt.
Von 128gb ssd auf eine 64gb sd.
Dann kann ich bei einem Problem einfach die sd einstecken und alles läuft. -
@david-g sagte in Swap Space wächst trotz freiem Speicher:
Desktop und dann noch vnc...
Da musst du dich auch nicht wundern.Schalt den Quatsch aus.
-
Mit so Reaktionen hab ich gerechnet.
Für mich war es Abwägung und ein Test ob es klappt.Das System läuft seit 2 Jahren absolut stabil.
Wenn der Ramverbrauch von 62% da der "einzige" Nachteil ist, nehme ich den in Kauf. Ist ja noch Luft nach oben.Sollte ich das System irgendwann komplett neu aufsetzen, werde ich es vermutlich ohne Desktop machen (mit der Hoffnung, ein Backuokonzept zu finden, was ähnlich simpel ist).
IoBroker läuft schnell wieder, jedoch habe ich mich bei dem nut sehr schwer getan, da dort einiges bei Verwendung am pi angepasst werden muss.
-
@david-g sagte in Swap Space wächst trotz freiem Speicher:
Das System läuft seit 2 Jahren absolut stabil.
Dein Swap ist jedenfalls nicht 'stabil'.
-
@david-g
Da gibts ne idiotensichere Anleitung für den Pi und das dauert keine 30 Minuten bis der sauber wieder eingerichtet ist. Dann mit Backitup den Rest und Du hast ein sauberes System.https://www.raspifun.de/viewtopic.php?t=4
Ein Image ist immer nur so sauber wie man es erstellt hat
-
Das raspbian in wenigen Minuten samt iobroker läuft weiß ich.
Das ist nicht das Ding.Mir geht's bei dem Backup um die Sachen neben iobroker (wie gesagt besonders diese doofe nut).
Abgesehen von runlevel ist das System sehr clean. Würde das ganze Backup nur nehmen, wenn die ssd kaputt geht oder irgendwelche Systemuodates schief laufen. Wenn irgendwo der Wurm drinnen ist natürlich nicht.
Wenn ich das System dann wirklich mal neu aufsetze (ohne Desktop), dokumentiere ich mir alles. Das habe ich damals nicht gemacht was ich sehr bereue.
Langsam wird es aber sehr off topic. Wollte den Thread nicht kapern.
-
@david-g
Die conf-Datei für den nut noch sichern, fertig. -
Musste auch noch bei der system.d glaube was machen. Nut ist immer zu früh gestartet und hat noch nicht alle resourcen bekommen die es wollte und hat sich dann beendet.
Müsste das Problem aber auch noch hier im Forum finden.
-
@wildbill
Natürlich möchte ich die Ursachen beheben, weiß aber nicht wie ich das machen soll -
@marty56 Einiges wurde hier im Thread ja bereits genannt:
-
Läuft auf dem Server ein völlig unnötiger Desktop?
-
Läuft auf dem Server abseits iobroker noch anderes (Homematic, Phoscon, irgendwelche Datenbanken wie mySQL, InfluxDB,...)
-
Backitup-Adapter, wenn der Swap immer zu bestimmten Zeiten angegriffen wird
-
Scripte, die Loops aufbauen, da Schleifen oder Timeouts nicht korrekt sind (dann sollte der SWAP sich nach und nach aufbauen, evtl. auch zu bestimmten Zeiten, in denen Scripte getriggert werden)
Wie Du dahinter kommst, gibt es unterschiedliche Ansätze. Die Punkte 1-3 kannst Du Dir ja direkt mit ja/nein beantworten. Generell schadet es sicher auch nichts, mal mit htop zu schauen, welcher Prozess wieviel Speicher belegt, dann weisst Du auch ungefähr die Richtung. Wenn Scripte in Betracht kommen, mal alle anhalten, einzeln starten und über einen (gegebenenfalls längeren) Zeitraum beobachten, ob der Speicher immer weniger wird bzw. SWAP angegriffen wird. Keiner kennt Dein System besser als Du, also solltest Du mit diesen Angaben einen Anhaltspunkt haben, wo Du schauen kannst.
Und, ganz wichtig, nicht zu viel auf einmal ändern. Immer schön eine Änderung und beobachten. Sonst hast Du irgendwann zwar das gewünschte Ergebnis, weisst aber immer noch nicht, was der Auslöser war.Gruss, Jürgen
-