Hohe Speicherauslastung auf Raspberry 3?

  • Wie schön es wieder war:

    drei Wochen auf Dienstreise und in Woche zwei kommt der obligatorische Anruf: "Das geht wieder alles nicht wenn du nicht da bist!" X(


    Nun wieder zu Hause die Bridge untersucht und die SD-Karte ist nicht mehr zu gebrauchen. Macht gar nichts mehr...

    Alles neu installiert und diesmal über die echt gute Anleitung von hier. :thumbup:


    Mir ist aber eben aufgefallen, nachdem ich Netatmo, Homematic, weather plus und die UI installiert habe, dass der Arbeitsspeicher nahezu gesamt belegt ist.

    Ist das normal und es ist mir nur nie aufgefallen, oder macht einer jemand "Mist"? :/

  • dass der Arbeitsspeicher nahezu gesamt belegt ist.

    Wenn du tief in dich gehst, wirst du bemerken, dass du den Arbeitsspeicher ja nicht gekauft hast, damit er unbenutzt vor sich hingammelt, oder? Arbeitsspeicher ist dazu da, dass er benutzt wird, ansonsten kann man auch ein Stück davon absägen und in die Tonne werfen.


    Die Frage ist nur: wofür wird der Arbeitsspeicher benutzt? Der Befehl free im Terminal kann einem Auskunft geben:


    free -m


    Code
    pi@redpi:~ $ free -m
                  total        used        free      shared  buff/cache   available
    Mem:            927         337          96          83         493         456
    Swap:            99           0          99

    Das ist mein Raspi 3B+. An Speicher stehen mir insgesamt 927 MB zur Verfügung. Davon sind 337 benutzt und 96 frei. Klingt komisch, nicht wahr? Da fehlt doch was... ah, da werden noch 493 MB für buff/cache verwendet. Das Betriebssystem macht nämlich folgendes: es nimmt den freien Speicher, den die Maschine noch hat und speichert darin alles mögliche, meist alles das, was für einen schnellen Dateizugriff nötig ist und noch irgendeinen anderen Schnickschnack. Warum auch nicht?


    Wenn der Raspi mehr Speicher braucht für laufende Software, dann wird buff/cache wieder freigegeben. Die Rechnung oben lautet also:


    377 MB benutzter Speicher durch laufende Software +

    96 MB völlig unbenutzter Speicher (kann man absägen) +

    493 MB temporär benutzter Speicher =

    926 MB Gesamtspeicher (passt nicht so ganz, ist aber ähnlich zu 927 MB in der Anzeige)


    Der wirklich freie Speicher, den du noch nutzen kannst steht ganz rechts: 456 MB. Dämlicherweise zeigen alle grafischen Oberflächen, Monitorprogramme und sonstwas immer den Wert von free an (96 MB) statt den von available (456 MB). Die 83 MB shared übrigens werden vom Betriebssystem für sich benutzt und die Rechnung lautet am Ende 927 MB total + 83 shared = 1009 MB Gesamtkapazität des Raspis. Die Zahlen sind immer als ungefähr zu betrachten.


    Es wird erst bitter, wenn der Wert unter available immer auf 0 steht und dafür der Wert neben swap auf 99. Dann lagert der Raspi nämlich Daten auf die SD-Card aus und dann braucht man zwingend mehr RAM. Im Swap kann bei dir jetzt ein Wert stehen, der dir aber egal sein kann, solange available genug anzeigt. Manchmal schreibt der Raspi was in den Swap hin, frag mich nicht, was das ist.


    Auf meinem Raspi 4 sieht die Situation völlig trostlos aus:

    Code
    pi@homePi:~ $ free -m
                  total        used        free      shared  buff/cache   available
    Mem:           3906         306        2327          32        1272        3419
    Swap:            99           0          99


    2,327 GB RAM werden überhaupt nicht genutzt, verfügbar sind gar 3,419 GB: rausgeschmissenes Geld, aber es gab leider keinen kleineren Vierer, als ich ihn gekauft habe. Völlig überdimensioniert.


    Stefan

  • Zitat

    2,327 GB RAM werden überhaupt nicht genutzt, verfügbar sind gar 3,419 GB: rausgeschmissenes Geld, aber es gab leider keinen kleineren Vierer, als ich ihn gekauft habe. Völlig überdimensioniert.


    Alte Logistiker Weisheit: Besser haben als brauchen ;)

  • Wenn du tief in dich gehst, wirst du bemerken, dass du den Arbeitsspeicher ja nicht gekauft hast, damit er unbenutzt vor sich hingammelt, oder? Arbeitsspeicher ist dazu da, dass er benutzt wird, ansonsten kann man auch ein Stück davon absägen und in die Tonne werfen.

    Die Frage ist nur: wofür wird der Arbeitsspeicher benutzt? Der Befehl free im Terminal kann einem Auskunft geben:


    free -m


    Code
    pi@redpi:~ $ free -m
                  total        used        free      shared  buff/cache   available
    Mem:            927         337          96          83         493         456
    Swap:            99           0          99

    Vielen Dank für die umfassende Antwort! :thumbup:

    Werde ich mir nachher mal anschauen.


    Generell bin ich mir dessen bewusst, ich war nur gestern sehr verwundert, als ich meine erste Automation testen wollte:

    In der Apple Homeapp auf die Deckenleuchte drücken, die Homebridge routet den Befehl an Homematic, die schaltet die Deckenleuchte an. Dazu soll die Schrankbeleuchtung aktiviert werden.


    Ergebnis: ca 12 s Wartezeit. Allein das Schalten der Deckenleuchte dauert ca 5 s.

    In Homematic und in der App der Schrankbeleuchtung erfolgt dies nahezu sofort.

  • Da die Homebridge extrem langsam war habe ich sie kurzerhand mal auf einer anderen SD erneut aufgesetzt. Diesmal nur die Homebridge:


    total used free shared buff/cache available

    Mem: 926 116 87 6 722 739

    Swap: 99 6 93


    Sieht denke ich iO aus.

    Allerdings ist das Ding derart langsam... Ich habe keine Ahnung wo der Fehler liegt. Ich habe vorher ein recht direktes Schalten gabt. Habe ich in der HomeApp gedrückt wurde sofort das Licht auf der Homematic geschaltet

    . Aktuell warte ich nun ca sechs Sekunden!

    Ich denke ich mache mal ein neues Thema dazu auf...