NEWS
BackItUp-Adapter RAM-Verbrauch
-
-
@killroy2
Heißt die angegebene Menge ist für den Dienst reserviert, wird aber nicht wirklich komplett gebraucht und wenn ein andere Dienst diesen benötigt, wird der freigegeben. Somit hat der angezeigte Wert nicht wirklich eine Bedeutung und erklärt auch warum plötzlich mehr Speicher angeblich belegt ist, nur weil die HW auch mehr Speicher besitzt. Linux reserviert eben was da ist und verteilt das wenn es benötigt wird aber auch schnell neu. Bei meinem Beispiel oben hätte mein Beelink nach dem Umzug eigentlich nur 750MB der 4GB belegen dürfen, nimmt sich aber trotzdem 1,1GB vom Speicher.Google mal nach "Linux Speicherverwaltung", oder klick den Link von Homoran, der verdeutlicht das ganze.
Eins zum Schluss noch, 1BG RAM ist auf die Dauert zu wenig, deshalb gibts die PIs nun auch endlich mit mehr RAM. Ich halte aber auch nicht so viel von reinen IOBroker Installationen, die mit 32GB RAM protzten, denn jeder Chip der verbaut ist erhöht auch den Stromverbrauch und warum sollte man für was zahlen, wenn man es nicht verwendet? Auch wenn es nicht viel ist, es ist unnötig
4-8GB RAM ist für IOBroker absolut ausreichend. -
Die Seite spricht über Caches.
Schaut man sich den Verbrauch an überps -aux
sieht man in der Spalte RSS - Resident Set Size den notwendingen Verbraucht ohne swapping.
Worüber ihr redet ist VSZ. Das ist Swapping und Shared Libraries mit addiert.
Iobroker zeigt RSS an. Der Speicher wird auch nicht freigegeben wenn nicht mehr ausreichend verfügbar ist. -
@killroy2
Ja, wenn nix mehr da ist, ist eben Schluss, daran ändert auch Linux nichts -
@killroy2 sagte in BackItUp-Adapter RAM-Verbrauch:
Mein alter Pi mit 1GB war sobald er vollgelaufen ist nicht mehr vernünftig im Haus nutzbar
Wenn der Speicher wirklich voll ist (und nicht nicht frei - entscheidend ist available und nicht free!) läuft natürlich nichts mehr.
Wir haben schon vor Jahren von SBC mit nur 1GB RAM abgeraten (500MB sowieso), außer für kleine Satellitenanwendungen als Slave bei einem Multihost.
Es ist bekannt, dass ab 15 Instanzen 1GB RAM nicht mehr reichen kann. Erst recht nicht wenn noch anderes darauf läuft und/oder eine grafische Oberfläche verwendet wird.
Auch ein Backup benötigt sehr viel RAM, so dass zumeist während eines Backups die Probleme zuerst auftraten.
Was den Stromverbrauch angeht wird die Diskussion akademisch:
Ob ich jetzt einen Pi3 mit etwa 3,5-5W nehme oder einen NUC mit 6-10W ergibt im Jahr einen Mehrpreis von etwa 25€ -
@Homoran
Ist richtig, nur liegst Du beim Pi und beim NUC schon wieder zu hoch. Der Pi hat z.B. max 3,5W, aber schreibe ich oben schon was den Mehrverbrauch des RAM angeht, was unnötig ist, ist unnötig und wenn es 2€ im Jahr sind. Man sollte es einfach wissen und im Hinterkopf haben, denn die Summer der einzelnen Geräte bei denen es im einzelnen nicht relevant ist, macht den Unterschied.
Altes Sprichwort dazu: Kleinvieh macht auch MistVier mal NUC macht dann in Deiner Rechnung schon 100€, was auch kein Beinbruch ist, aber eben nicht nötig wenn es was kleineres auch tut und für die Verwendung ausreichend ist. Das muss jeder individuell entscheiden, kann er aber nur, wenn er es weiß. Mein Auto hat auch 280PS und es ist unnötig, macht aber Spaß
-
@Homoran said in BackItUp-Adapter RAM-Verbrauch:
Auch ein Backup benötigt sehr viel RAM, so dass zumeist während eines Backups die Probleme zuerst auftraten
Wegen temporärer Lastspitzen muss immer ein ausreichender Vorhalt da sein, und da ist es hinderlich wenn Dienste, obwohl sie nicht arbeiten viel Speicher belegen den sie NICHT freigeben. Da kommen wir nach vielen Umschweifen zur ursprünglichen Frage zurück warum das beim Backup Adapter so sein muss. Für mich sieht das halt so aus dass es die Architektur nicht so einfach hergibt, dass es andere mit Aufwand oder Tricks hinkriegen so dass man es eher nicht macht und lieber empfohlen wird Hardware aufzurüsten.
-
@killroy2
40MB was Du angibst ist nicht viel, und stört bei empfohlenen 4GB absolut nicht. Es gibt eben immer den Zeitpunkt an dem etwas zu klein wird und klar, man kann alles optimieren, verschiebt aber nur den Zeitpunkt etwas nach hinten -
-
@Homoran
der liegt aber auch nur minimal drüber, allerdings ist der auch nicht mehr weit vom NUC weg und somit im direkten Vergleich trotz der 4GB RAM uninteressant, da ist nur noch der Preis ein Argument. Ein kleiner NUC liegt um die 5W wenn er nicht viel zu tun hat, was unter Volllast auf ca. 10W ansteigen kann. Also alles noch recht wenig Verbrauch. -
@Jan1 sagte in BackItUp-Adapter RAM-Verbrauch:
Ein kleiner NUC liegt um die 5W wenn er nicht viel zu tun hat, was unter Volllast auf ca. 10W ansteigen kann. Also alles noch recht wenig Verbrauch.
da hatte ich eben 6-10W geschrieben
@Jan1 sagte in BackItUp-Adapter RAM-Verbrauch:
ist der auch nicht mehr weit vom NUC weg und somit im direkten Vergleich trotz der 4GB RAM uninteressant,
Den gibt es aber auch mit 1-8GB, ich habe nur 2
-
@Marty56 sagte in BackItUp-Adapter RAM-Verbrauch:
@simatec Meine Erfahrung mit dem Compact Mode beim Backup Adapter sind negativ. Ich habe diverse unerklärliche Fehler. Du kennst mein Issue.
Das hatte ich dir auch im Issue geschrieben und ist auch in der offiziellen Doku von iobroker zu lesen, dass der compact-Modus den Nachteil hat, dass hier eine gewisse Instabilität auftreten kann.
https://www.iobroker.net/#de/documentationWas ich mache ist, dass ich den Adapter einfach per Script disable und dann wieder enable, wenn er sein Backup machen soll.
Ich verstehe auch die Argumente mit den mehreren Timern nicht. z.B. der Yr Adapter hat auch mehrere Timer und belegt dennoch nicht ständig RAM:
Was haben denn die mehreren Timer damit zu tun?
Es liegt schlicht und ergreifend daran, dass node jedes Backup in ein Archiv packt und dafür der RAM als Zwischenspeicher genutzt wird.
D.h. wenn du deine History, Redis, mysql etc. packst, kommt da einiges an Daten zusammen, die im RAM zwischengelagert werden.
Da Linux so intelligent ist und den RAM sehr gut organisiert, wird halt dann der RAM für Backitup reserviert.
Es ist aber ein riesengroßer Unterschied zwischen RAM belegt und RAM reserviert.
Sollte dein System an einer anderen Stelle den RAM brauchen, gibt Linux den wieder frei.Und falls du dies manuell machen willst, brauchst du nur in den Instanzen einen Timer setzen und Backitup jede Nacht einmal neustarten. Somit wird der RAM auch wieder freigegeben.
Ehrlich gesagt verstehe ich das Problem nicht so recht ...
-
@simatec said in BackItUp-Adapter RAM-Verbrauch:
Es liegt schlicht und ergreifend daran, dass node jedes Backup in ein Archiv packt und dafür der RAM als Zwischenspeicher genutzt wird.
D.h. wenn du deine History, Redis, mysql etc. packst, kommt da einiges an Daten zusammen, die im RAM zwischengelagert werden.Sobald ich backitup starte sind 70MB in Verwendung. Ich habe alle Haken entfernt und das Backup ist in Zukunft, d.h. er macht aktuell nichts (nach den Einstellungen). Was du beschreibst sind Aktionen zum getriggerten Zeitpunkt des Backups, aber nichts was im Idle Status gemacht wird.
Da Linux so intelligent ist und den RAM sehr gut organisiert, wird halt dann der RAM für Backitup reserviert.
Es ist aber ein riesengroßer Unterschied zwischen RAM belegt und RAM reserviert.
Sollte dein System an einer anderen Stelle den RAM brauchen, gibt Linux den wieder frei.Nochmal, was IoBroker anzeigt ist der tatsächliche verbrauchte Speicher. Die Swaps etc. freigeben z.B. echo 3 > /proc/sys/vm/drop_caches hat keine Auswirkung auf den Wert. Warum auch immer scheint es hier zu diesem Thema eine grosse Verwirrung zu geben.
Ehrlich gesagt verstehe ich das Problem nicht so recht ...
Ich hoffe es wurde damit klar. Für was braucht das Backup im Idle viel Speicher.
-
@killroy2 sagte in BackItUp-Adapter RAM-Verbrauch:
Was du beschreibst sind Aktionen zum getriggerten Zeitpunkt des Backups, aber nichts was im Idle Status gemacht wird.
Das ist korrekt ... Aber was sind 70 MB. Es gibt sehr viele Adapter, die ebenfalls 70 MB benötigen.
Also verstehe ich die Diskussion nicht.
Als Beispiel mal Web-Speedy ... Dieser Adapter macht auch zyklisch einen Check und eine Messung der Internetverbindung und läuft dementsprechend auch nur alle x Minuten oder Stunden und hat ebenfalls einen RAM Reservierung von um die 70 MB.Holt euch doch einfach dementsprechende Hardware zu dem was ihr mit iobroker machen wollt.
Ich kann nicht nachvollziehen, wie viele der User hier 30 Adapter und mehr auf einem PI oder vergleichbarer Hardware nutzen wollen und sich dann wundern, dass der RAM eng wird. -
@killroy2 sagte in BackItUp-Adapter RAM-Verbrauch:
Was du beschreibst sind Aktionen zum getriggerten Zeitpunkt des Backups, aber nichts was im Idle Status gemacht wird.
Dann beschäftige dich mal mit dem Adapter und schaue dir den Code an und mal den debug Log.
Da wirst du sehen, dass hier nicht nur zum Zeitpunkt der Backuperstellung etwas passiert. -
@simatec
Ich sehe aber nichts was er effektives ausserhalb der cron Zeit macht.
Es gibt event listener um auf Einstellungsänderungen zu reagieren. Also Dinge die einmal zur Konfigurationszeit passieren. Dafür den Adapter als daemon laufen zu lassen ist schon Verschwendung.
Der Ram-Verbrauch im IOBroker ist ein Hauptkritikpunkt, auch wenn das manche lapidar abtun wollen. Das schein auch Gehör zu finden sonst würden keine Massnahmen dagegen ergriffen worden sein. -
@killroy2
Das Konzept von Backitup ist aber so aufgebaut und wird aufgrund des Funktionsumfangs auch nicht als schedule umgebaut.
Wie gesagt, 70 MB sind in der Zeit von Rechnern mit > 16 GB kein Problem und kein Grund hier Änderungen vorzunehmen.