NEWS
RAM Warnungen unter OSX
-
Hallo zusammen,
bin noch ziemlich am Anfang mit meinem iobroker. Hatte zunächst eine Testinstanz in einem Docker-Container laufen, dort war eigentlich alles super, nur benötige ich jetzt auch Adapter (z.B. HEOS oder yahka) mit direktem Netzwerkzugriff. Deswegen habe ich mal direkt auf OSX einen iobroker zum laufen gebracht.
Grundsätzlich funktioniert die Installation, was nicht geht sind die Adapter-Installationen und -Updates direkt aus dem Admin-UI. Das muss ich alles über die Konsole machen. Damit kann ich leben, ist nur etwas komisch.
Was mir mehr Sorgen bereitet sind die ständigen RAM-Fehlermeldungen. Die Installation vermeldet eigentlich dauerhaft, dass nur noch wenige MB RAM zur Verfügung stehen, was komplett falsch ist. Irgendwie wird der verfügbare RAM falsch ausgewertet?
Kann mir jemand helfen? Welche Informationen benötigt ihr?
MfG Micha
-
@m-schmidt Docker läuft ja nicht nativ unter MacOS, sondern in einer VM (HyperKit). Wahrscheinlich bekommt die VM dynamisch RAM zugewiesen (?) und daher kann aus dem Container gar nicht ermittelt werden, wieviel RAM auf dem Host eigentlich zur Verfügung steht.
nur eine Vermutung
-
Danke für die schnelle Rückmeldung. Jetzt hab ich vielleicht etwas durcheinander rein gebracht.
Die RAM Warnungen bekomme ich in der nativen Installation unter OSX. Im Docker war mit der selben Version alles gut.
Die Meldung wird für den Host angezeigt und besagt z.B. "Your system has only 30 MB RAM left available and an additional adapter process is started. Please check your system, settings and active instances to prevent swapping and Out-Of-Memory situations!"
Der Host zeigt als Konfiguration 4GB RAM an und diese sind laut Host-Anzeige im iobroker gerade mal zu 1,2% belegt. Also irgendwas haut da nicht hin.
Bei Installation oder Update von Adaptern geht zwar das Update-Fenster auf, dann passiert aber nix mehr und kurz darauf werden alle Adapter neugestartet. Keine Ahnung ob das vielleicht im Zusammenhang mit den RAM Meldungen steht. Mit einem
iobroker add
oderiobroker upgrade
funktioniert alles.Da ist es echt erstaunlich, dass die ganzen Adapter grundsätzlich auch unter OSX wunderbar funktionieren.
-
Hat niemand eine Idee? Hat überhaupt jemand eine iobroker Installation unter OSX laufen?
-
@m-schmidt sagte in RAM Warnungen unter OSX:
Hat überhaupt jemand eine iobroker Installation unter OSX laufen?
Bestimmt nur ein ganz kleiner Teil. Warum sollte man das auch tun? Ein Großteil verwendet ja nicht ohne Grund Linux. Ich sehe MacOS (genau wie Windows) als Desktop-Betriebssystem.
Und obwohl ich 13+ Jahre MacOS nutze, würde ich nie auf die Idee kommen dort den ioBroker zu installieren.
-
@m-schmidt sagte in RAM Warnungen unter OSX:
t als Konfiguration 4GB RAM an und diese sind laut Host-Anzeige im iobroker gerade mal zu 1,2% belegt.
zeigen!
das dürfte das verbleibende RAM sein.
-
@m-schmidt sagte in RAM Warnungen unter OSX:
Hat überhaupt jemand eine iobroker Installation unter OSX laufen?
259 user!
von 75000 Installationen
-
@homoran sagte in RAM Warnungen unter OSX:
@m-schmidt sagte in RAM Warnungen unter OSX:
t als Konfiguration 4GB RAM an und diese sind laut Host-Anzeige im iobroker gerade mal zu 1,2% belegt.
zeigen!
das dürfte das verbleibende RAM sein.
Ich bin nicht der OP, habe das Problem aber auch:
CPU: 1,13 % RAM: 0,5 % Uptime: 0h Available: 4.0.24 Installed: 4.0.23 Events: ⇥4 / ↦12 Platform: OSX operating system: darwin Architecture: arm64 CPUs: 10 Speed: 24 MHz Model: Apple M1 Pro RAM: 16 GB System uptime: 10 d. 22:38:47 Node.js: v16.15.0 time: 1678362455070 timeOffset: -60 adapters count: 470 NPM: v8.5.5 Disk size: 460.4 GB Disk free: 247.3 GB Uptime: 00:00:05 Active instances: 1 Path: /usr/local/iobroker/ alive: true _nodeCurrent: 16.15.0 _nodeNewest: 16.19.1 _nodeNewestNext: 16.19.1 _npmCurrent: 8.5.5 _npmNewest: 8.5.5 _npmNewestNext: 8.19.3
Interessanterweise habe ich fast keine Aktivitäten, da ich die Instanz nur für skript-tests nutze. Dementsprechend klein ist die Installation auch.
Nach diesem Bild nutze ich 316 MB und hab 88 MB frei.
Ich hab zum Spass mal den Speicherbedarf nach oben befördert. Jetzt nutze ich 627 MB (mehr als ich hätte haben dürfen), und bae noch 67 MB frei.
Nebenbei ist die Gesamtspeicherbelastung äquivalent hoch gegangen, ohne das das System Probleme bekommt (Siehe die beiden folgenden Screenshots - die Swap Nutzung ist auch nicht nach oben gegangen)
Da passt offensichtlich die Ermittlung des "verfügbaren Speichers" nicht.
A.
-
@asgothian sagte in RAM Warnungen unter OSX:
Da passt offensichtlich die Ermittlung des "verfügbaren Speichers" nicht.
um welche geht es denn?
ich wollte sehen, wo @m-schmidt dies@m-schmidt sagte in RAM Warnungen unter OSX:
laut Host-Anzeige im iobroker gerade mal zu 1,2% belegt.
gefunden hatte?
Je nachdem welche Anzeige er meint, hat es da schon einmal einige Threads gegeben, dass der Wert für das Gegenteil (verbraucht <-> verfügbar) war.
wenn du die Anzeige in der Titelzeile der Instanzen meinst, genau die ist es!
-
@homoran sagte in RAM Warnungen unter OSX:
um welche geht es denn?
ich wollte sehen, wo @m-schmidt dies
@m-schmidt sagte in RAM Warnungen unter OSX:laut Host-Anzeige im iobroker gerade mal zu 1,2% belegt.
gefunden hatte?
Ich gehe davon aus das es sich um die Darstellung im 1. Screenshot bzw. aus dem geposteten Text handelt. Das deckt sich mit dem Verhalten auf meinem System - diese ist bei mir auch mit einer kleinen %-Zahl dargestellt und bezeichnet den freien Speicher, während der Eintrag für die CPU den %satz der Nutzung der CPU zeigt (ist mindestens mal unverständlich)
Spätestens bei der Instanzanzeige wird dieses dann auch deutlich. Da steht die gleiche %-zahl wie in der Host-Anzeige, aber klar als "freier Speicher" bezeichnet.
Allerdings ist die Aussage des OP zur Warnung doch nicht so einfach abzutun:
- Die Warnung kommt basierend auf dem Wert zurecht - 1.x% freier Speicher ist zu wenig.
- Die Zahl die den freien Speicher bezeichnet ist aber nicht nachvollziehbar. Daher kommt die Meldung also aus dieser Sicht fehlerhaft.
A.
-
@asgothian sagte in RAM Warnungen unter OSX:
ist mindestens mal unverständlich
so ist es!
@asgothian sagte in RAM Warnungen unter OSX:
Da steht die gleiche %-zahl wie in der Host-Anzeige, aber klar als "freier Speicher" bezeichnet.
genau! das ist definitiv sehr unverständlich: -)
@asgothian sagte in RAM Warnungen unter OSX:
Die Warnung kommt basierend auf dem Wert zurecht - 1.x% freier Speicher ist zu wenig.
wo steht das?
@m-schmidt sagte in RAM Warnungen unter OSX:
Your system has only 30 MB RAM left
ich war dann allerdings zu faul zum rechnen.
Edit: 30 von 4000 sind 0.75%. Je nach Art der Berechnung und ob free oder available habe ich mit 1.x% weniger Probleme als mit dem Rest
-
@homoran sagte in RAM Warnungen unter OSX:
genau! das ist definitiv sehr unverständlich: -)
@asgothian sagte in RAM Warnungen unter OSX:Die Warnung kommt basierend auf dem Wert zurecht - 1.x% freier Speicher ist zu wenig.
wo steht das?
@m-schmidt sagte in RAM Warnungen unter OSX:Your system has only 30 MB RAM left
ich war dann allerdings zu faul zum rechnen.
Edit: 30 von 4000 sind 0.75%. Je nach Art der Berechnung und ob free oder available habe ich mit 1.x% weniger Probleme als mit dem RestDie Rechnung mit den 1% macht keinen Sinn. die 30 MB konnte ich bei mir nicht nachvollziehen - allerdings passen die Zahlen die bei mir in den Meldungen stehen zu den Zahlen die in der Instanzdarstellung angegeben werden.
Die mittlere der Meldungen passt genau zu dem Screenshot aus dem vorherigen Post - 88 MB, 1 %. Das passt letztendlich auch bei mir zur Speicherausstattung (88 MB von 16 GB sind 0.55 %, gerundet auf 1.
Ob die Meldung im Log und die Anzeige im Host immer synchron sind wage ich zu bezweifeln.
Daher bleibt das Problem das der freie Speicher nicht korrekt angezeigt wird:
Initial, angeblich 316 MB genutzt, 88 MB frei
Nach hinzufügen 627 MB genutzt, 67 MB frei.Das hätte nicht gehen dürfen. Es scheint auf dem Mac deutlich mehr Speicher "Frei" zu sein als das System anzeigt - ähnlich wie die das von @haus-automatisierung über Docker geschrieben wurde.
-
@m-schmidt Gibt es einen speziellen Grund ioB unter MacOS nativ zu betreiben?
Ich habe meist eine Testumgebung mit allen möglichen Containern unter Docker auf einem Intel-Mac am laufen und konnte bisher keine Probleme feststellen.
In der aktuellen Testumgebung teste ich gerade Influxdbv1/v2 die hier gleichzeitig ohne Probleme bedient werden.
Es laufen hier im Moment zwar nicht viele Adapter, aber manchmal clone ich auch meine Life-Version (läuft auf Rock64) mit sämtlichen Containern und allen 29 Adaptern-Instanze
um irgendwelche umfangreichen Änderungen/Updates zu testen.
Da gab es nie Probleme.
Einschränkungen habe ich bisher nur beim telegraf-Container unter OSX festgestellt. Da werden dann einige Werte (z.B. cpu-Temp) nicht ermittelt, aber falls das nötig ist kann telegraf ja problemlos per brew nativ installiert werden. -
Hallo zusammen,
sorry, jetzt ist hier ja einiges aufgelaufen, hatte gestern leider keine Zeit mehr.
Erstmal kann man sich natürlich streiten, wie sinnvoll der iobroker nativ auf OSX ist und da bin ich sicher eine Randgrupppe.
Hatte ja schon geschrieben, dass ich eigentlich erst Docker auf OSX verwendet habe, aber einige Adapter brauchen vollen Netzwerkzugriff und an der Stelle hat die OSX Docker Installation leider unüberbrückbare Beschränkungen. Einen Linux Host habe ich nicht, aber einen Mac Mini der 24/7 läuft und auch schon meine aktuelle Hausautomatisierung umsetzt. Deswegen war der Schritt auf das OSX in meinem Fall erstmal naheliegend und wie gesagt, bis auf die nervigen Fehlermeldungen und die Notwendigkeit Adapter über die cli zu installieren und zu aktualisieren, läuft die Installation ja auch. Kann aber natürlich sein, dass irgendwann noch weitere Probleme auftauchen ...
Nun nochmal zum Speicher. Konnte euren unterschiedlichen Aussagen jetzt leider nicht so ganz folgen. Wahrscheinlich habe ich die RAM-Anzeige auch falsch interpretiert. Wahrscheinlich sagen die 2,1% aus, dass iobroker 2,1% nutzt im OSX ist auf jeden Fall weit mehr als 2,1% RAM belegt.
Wenn in OSX wirklich nur noch 30MB verfügbar wären, müsste ich dringend mal neu starten. Vermute mal, dass bei der Berechnung der Cache nicht in Betracht gezogen wird und deshalb aber auch der Speicher nicht ausgeht? Der Mini ist zwar kein high Performance Monster mit unendlichen Ressourcen, läuft aber im Normalfall (auch mit laufenden iobroker) 1-2 Monate ohne Neustart durch. Also das System läuft schon.
Kann ich diesen Check irgendwie beeinflussen?
-
@m-schmidt sagte in RAM Warnungen unter OSX:
Hatte ja schon geschrieben, dass ich eigentlich erst Docker auf OSX verwendet habe, aber einige Adapter brauchen vollen Netzwerkzugriff und an der Stelle hat die OSX Docker Installation leider unüberbrückbare Beschränkungen.
Nicht falsch verstehen, ich will hier keineswegs auf Docker rumreiten. Da ich selbst noch einen alten Mac-Mini rumstehen habe, den ich evtl als zukünftigen ioB Server nutzen will würde es mich interessieren, welche Adapter genau einen Netzwerkzugriff benötigen, der mit Docker so nicht geht.
In dem Fall würde ich ja ggf. vor dem gleichen Problem stehen. -
@rewenode said in RAM Warnungen unter OSX:
Nicht falsch verstehen, ich will hier keineswegs auf Docker rumreiten. Da ich selbst noch einen alten Mac-Mini rumstehen habe, den ich evtl als zukünftigen ioB Server nutzen will würde es mich interessieren, welche Adapter genau einen Netzwerkzugriff benötigen, der mit Docker so nicht geht.
In dem Fall würde ich ja ggf. vor dem gleichen Problem stehen.Hatte ich im Eingangspost schon geschrieben, bei mir war das Problem HEOS und yahka.
Hat sicher mit notwendigem Broadcasting zu tun. In den iobroker docs wird darauf auch hingewiesen, leider gibt es das MACVLAN soweit ich es verstanden habe im Docker auf OSX nicht.
-
@m-schmidt sagte in RAM Warnungen unter OSX:
Hat sicher mit notwendigem Broadcasting zu tun. In den iobroker docs wird darauf auch hingewiesen, leider gibt es das MACVLAN soweit ich es verstanden habe im Docker auf OSX nicht.
Gut zu wissen und Danke für den Link. Die Doku @andre ist mir irgendwie entgangen. Die ist ja wirklich klasse!
Auch wenn ich im Moment kein Problem in meiner isolierten Installation mit host - Netzwerk habe. -
@rewenode sagte in RAM Warnungen unter OSX:
Gibt es einen speziellen Grund ioB unter MacOS nativ zu betreiben?
Es gibt mehrere:
- Keine Möglichkeit serielle Schnittstellen vom Host in den Container umzuleiten (damit also kein Adapter der die Serielle Schnittstelle benötigt)
- Probleme mit der Netzwerkunterstützung (wie von @m-schmidt geschrieben)
- Probleme mit dem durchleiten der Daten. Ich habe das mehrfach auf dem Mac probiert und bin immer wieder gegen Wände gelaufen - bis ich es letztendlich aufgegeben habe.
Die Probleme sind im übrigen nicht auf Docker zurück zu führen sondern darauf wie Docker auf OSX umgesetzt ist - nämlich als VM mit einem eigenen Linux. Dementsprechend ist auch die Systemlast mit Docker im Vergleich zu ohne Docker auf dem Mac eher schlechter als auf einem Linux host.
Der Kernel von MacOS ist zwar mit BSD verwandt, bietet aber insbesondere in der Hardwarenahen Schicht nicht alle Optionen die ein Linux / Unix bieten, weswegen Docker den Weg über eine VM gehen muss.@m-schmidt sagte in RAM Warnungen unter OSX:
Nun nochmal zum Speicher. Konnte euren unterschiedlichen Aussagen jetzt leider nicht so ganz folgen. Wahrscheinlich habe ich die RAM-Anzeige auch falsch interpretiert. Wahrscheinlich sagen die 2,1% aus, dass iobroker 2,1% nutzt im OSX ist auf jeden Fall weit mehr als 2,1% RAM belegt.
Nein. Die Aussage besagt das der an den ioBroker gemeldete freie Speicher (bei Dir wenig) nur in etwa 2.1 % deines gesamten Speichers (4 GB) aus macht. Dabei ist zu beachten das die Anzeige am Host ggf. nicht synchron zu den Meldungen aktualisiert wird, weswegen da ein zu hoher Wert ausgegeben wird. (2.1 % von 4 GB sind 83 MB). Ich konnte das mehrfach nachstellen. Insbesondere ist mir aufgefallen das wenn der Warndialog geöffnet wird der eigentliche Start des Adapters bereits geschehen ist - nach der folgenden Zeitleiste:
- Adapter soll gestartet werden. Dem ioBroker bekannt sind zu dem Zeitpunkt 30 MB freier Speicher
- IoBroker warnt, versucht dann den Adapter zu starten
- MacOS stellt dem ioBroker mehr Speicher zur Verfügung, der Adapter startet
- Die Anzeige im Host wird aktualisiert
- Der Nutzer schaut auf die Zahlen in der Meldung.
Du kannst aus Neugier mal Titelzeile der Instanzen-Ansicht nachschauen - da erhältst du einen %-Wert und einen MB Wert die Synchron sind.
Wie ich bereits weiter oben geschrieben habe
@asgothian sagte in RAM Warnungen unter OSX:
Die mittlere der Meldungen passt genau zu dem Screenshot aus dem vorherigen Post - 88 MB, 1 %. Das passt letztendlich auch bei mir zur Speicherausstattung (88 MB von 16 GB sind 0.55 %, gerundet auf 1.
Ob die Meldung im Log und die Anzeige im Host immer synchron sind wage ich zu bezweifeln.
Daher bleibt das Problem das der freie Speicher nicht korrekt angezeigt wird:
Initial, angeblich 316 MB genutzt, 88 MB frei
Nach hinzufügen 627 MB genutzt, 67 MB frei.
Das hätte nicht gehen dürfen. Es scheint auf dem Mac deutlich mehr Speicher "Frei" zu sein als das System anzeigt - ähnlich wie die das von @haus-automatisierung über Docker geschrieben wurde.Letztendlich kannst du die Warnungen meiner Meinung nach ignorieren. Der Prozess bekommt dynamisch weiter Speicher zugeteilt wenn dieser benötigt wird, so das die Warnungen ins leere laufen. Kritisch wird es erst wenn im Aktivitätsmonitor der Speicherdruck rot wird. So mache ich das auf den Systemen wo ich den ioBroker auf dem Mac laufen habe.
A.
-
@asgothian sagte in RAM Warnungen unter OSX:
Es gibt mehrere:
Keine Möglichkeit serielle Schnittstellen vom Host in den Container umzuleiten (damit also kein Adapter der die Serielle Schnittstelle benötigt)
Probleme mit der Netzwerkunterstützung (wie von @m-schmidt geschrieben)
Probleme mit dem durchleiten der Daten. Ich habe das mehrfach auf dem Mac probiert und bin immer wieder gegen Wände gelaufen - bis ich es letztendlich aufgegeben habe.Danke für die Ausführungen. Kann ich nachvollziehen.
Kannst du zum letzten Punkt "..durchleiten der Daten.." genauer sagen was du da genau meinst? -
Danke für deine Erklärungen, dann ignoriere ich diese Meldungen einfach, habe ich auch kein Problem mit und das beruhigt mich.
Dann bleibt für mich als letztes ungutes Gefühl zu meiner OSX Installation noch die Frage nach den Adapter-Installation und Updates. Hat da jemand eine Idee? Er kommt bei mir aus dem UI immer bis zu diesem Punkt und dann passiert erstmal einige Sekunden nix mehr. Auf einmal werden dann alle Adapter (inkl. admin) neugestartet, aber auch nach dem Neustart steht er wieder in dem Dialog und dann passiert wirklich nix mehr. Über das cli kann ich die Adapter installieren und auch aktualisieren.
Im Protokoll sehe ich leider zu dem Zeitpunkt auch nix auffälliges, nur dass die Adapter alle neugestartet werden. Kann ich sonst noch irgendwo nach dem Problem suchen?