RPI - Memoy Leak

Hm, also nach dem heutigen Update ist er richtig unter die Decke geschossen.
Sprunghaft von ~55% Belegung auf über 80% und da ist er dann auch geblieben und sogar noch weiter angestiegen…

Hab dann mal einen Neustart des Pi gemacht und nun bin ich wieder bei den sonst üblichen ~16-17% verbrauchten Speichers…
Schon komisch oder ?!:confused:

Ich kann meinem Pi auch beim RAM Verbrauch zuschauen.
Irgendetwas stimmt da nicht.
Peter

steigt schon wieder, allein von gestern Abend…

Überprüft ihr den USED Wert, oder den FREE Wert? (Help! Linux ate my RAM!)

paresy

Also ich nutze die Formel:

<Mem USED> / <Mem TOTAL> * 100

Aber nach deinem Link, ist das ja dann nicht richtig…

–edit–

Okay, verstanden. :slight_smile:

Hier noch ein weiterer Artikel der die Sache gut erklärt:

http://www.pc-erfahrung.de/linux/administration/linux-systemauslastung-analysieren.html

Wieder was dazu gelernt…

Schöner Link, erklärt so einiges. Danke dafür.
Gruß,
Peter

Ram-Verbrauch über lange Zeit loggen – Softwaresurium

Hi,

ich ermittle jetzt den „aus Linux-Sicht“ freien RAM hierüber:

<?
$Var=round(exec("cat /proc/meminfo | grep \"MemAvailable\" | cut -c 19-24")/1000,0);    //schnediet zwischen Zeichen 19 und 24 aus
//echo "$Var";
SetValue(IPS_GetParent($_IPS['SELF']),(int)$Var);
?>

Ist doch okay - oder?

Ciao HerbertF

Ich ziehe mir die Werte direkt über „free“


SetValue($UsedRAM , exec("free -t | grep buffers/cache | awk '{print $3/($3+$4) * 100}'"));

So sieht es bei mir nun auf jeden Fall ganz anders aus:

Hi,

komischerweise ergeben die beiden Varianten aus den beiden vorherigen Posts minimal unterschiedliche Werte (822996 und 809752):

pi@elt-verteiler ~ $ free
                   total       used       free     shared    buffers     cached
Mem:                 948012     510572    437440      8508      84372     301184
-/+ buffers/cache:   125016     822996
Swap:               1914876          0   1914876

pi@elt-verteiler ~ $ sudo cat /proc/meminfo
MemTotal:            948012 kB
MemFree:             436780 kB
MemAvailable:        809752 kB
Buffers:              84384 kB
Cached:              301204 kB
SwapCached:               0 kB


ciao herbertf

Ist mir auch aufgefallen.
Allerdings deckt sich die Ausgabe von „free“ mit der umgerechneten von „top“

Also dachte ich mir, wird es wohl passen :wink:

Also,

ich habe es bis heute nicht geschafft, dieses in PHP um zu setzen, aber der Speicher liegt immer hoch, kein Thema hier !
Ich habe auch keine Abstürze unter Raspian. Muss dazu sagen noch mal sagen, bin erst mit der 4er Beta angefangen, und habe alle Skripte nach meinem Wissen auf die 4er Version von Anfang an angepasst.Ok, Fehler könnten immer noch vorkommen, aber bei mir gibt es keine Problem (ausser ich spiele wieder, wo mir im Moment Zeit fehlt…)
Ich kann sagen, LCN - enosean (2-3 Test Geräte) - zwave(3 Steckdoesen, 1 StellaZ und ein Binärsensor am Razberry Modul) am gleichen Pi2 laufen reibungslos.


Wie im Bild zu sehen ist der Free Memory nach fast 6 Tagen uptime sehr gering sagt SimplePi.


RPi-Monitor gibt mir den USED Wert aus und der ist gering.

Habe ich nun richtig verstanden, dass ich mich entspannt zurück lehnen kann und mein Speicher nicht „zu Ende geht“ bzw ich Neustarten müsste? IPS ist also brav :-)?!

hey papaschlumpf,

sieht alles gut aus.
MemAvailable: 860880 kB ist im Moment mein verfügbarer Speicher,
MemFree: 478568 kB, nimmt ab, da der Cached sich mehr schnappt, der wird aber wieder freigegeben.

aus cat /proc/meminfo müsste man die Daten errechnen, und damit eine IPS Var füllen, hatte ich mal für den Pi1 gemacht, mal sehen ob ich das wiederfinde, und auf den PI2 und Pi3 versuchen.


<?
$id1 = CreateVariableByName($_IPS['SELF'], "Temperatur", 2);
$id2 = CreateVariableByName($_IPS['SELF'], "Volts", 2);
$id3 = CreateVariableByName($_IPS['SELF'], "Clock", 2);
$id4 = CreateVariableByName($_IPS['SELF'], "freier Speicher", 2);

SetValue($id1 ,(exec("cat /sys/class/thermal/thermal_zone0/temp "))/1000);
SetValue($id2 ,(float)(substr(exec("vcgencmd measure_volts"),5)));
SetValue($id3 ,(int)((exec("cat  /sys/devices/system/cpu/cpu0//cpufreq/scaling_cur_freq")) / 1000));

//Get the memory info, and grab the cool stuf
$meminfo = file("/proc/meminfo");
for ($i = 0; $i < count($meminfo); $i++) {
        list($item, $data) = explode(":", $meminfo[$i], 2);
        $item = chop($item);
        $data = chop($data);
        if ($item == "MemTotal") { $total_mem =$data;    }
        if ($item == "MemFree") { $free_mem = $data; }
        if ($item == "MemAvailable") { $MemAvailable = $data; }
        if ($item == "SwapTotal") { $total_swap = $data; }
        if ($item == "SwapFree") { $free_swap = $data; }
        if ($item == "Buffers") { $buffer_mem = $data; }
        if ($item == "Cached") { $cache_mem = $data; }
        if ($item == "MemShared") {$shared_mem = $data; }
}

SetValue($id4 ,(int)$MemAvailable);


function CreateVariableByName($id, $name, $type)
{
   $vid = @IPS_GetVariableIDByName($name, $id);
   if($vid===false) {
      $vid = IPS_CreateVariable($type);
      IPS_SetParent($vid, $id);
      IPS_SetName($vid, $name);
   }
   return $vid;
}

function CreateEventIDByName($id, $name, $type)
{
   $eid = @IPS_GetEventIDByName($name, $id);
   if($eid===false) {
      $eid = IPS_CreateEvent($type);
      IPS_SetParent($eid, $id);
      IPS_SetName($eid, $name);
   }
   return $eid;
}

?>

Ich kann auf jeden Fall sagen, dass meine FS20 Geräte, die am Pi an der FHZ1300 hängen, erst nach mehrmaligem Senden von Befehlen reagieren, wenn ich bei >98% laut SimplePi bin. Nach einem Neustart des Pi bin ich auf 27% und die Geräte reagieren wieder beim ersten Befehl. Woran kann das liegen?
@tomgr: dein Script werde ich noch testen. Danke schon mal

@ papaschlumpf,
Ich habe keine FS20 Geräte, nur LCN, zwave und enocean, wobei LCN der große Brocken ist.
Ich habe da keine Probleme, im Moment.
Meine Fehler waren bis jetzt zu 90% alte Skripte von IPS vor 4.0 aus dem Forum, die ich dann angepasst habe, was ich so brauche.
Wenn ich mir meinen HeizungsPi so anschaue, der nur wenig Hardware dran hat (nur GPIO’s) aber richtig was zu tun hat, da die Regler im IPS so alle 1 - 10 Sekunden was machen, ist mir das Teil nur beim Stromausfall oder Update „ausgefallen“.:smiley:
Auch mein LCN IPS System rennt durch, auch bei „hoher“ Speicherlast, und da ist richtig was los (mehr als LCN lieb ist…:D, duch die vielen Eigenbauten am LCN, die die Datenlast da ziemlich hochtreibt.:cool:)

Das einzige wo ich Probleme habe, ist zwave mit dem Razberry Modul, da ist es aber die Funkstrecke und hat nichts mit IPS zu tun, IPS macht genau was es soll.

Ich vermute auch, es gibt Probleme mit der Anbindung von Systemen, durch „Funkaussetzer“ oder „Übertragungsproblemen“ oder „PHP Skripte“ im jeweiligen System, die IPS vielleicht nicht alle Abfangen kann.

Ich bin glücklich mit IPS, da es mir Dinge ermöglicht, wie einen Heizungsregler „nachzubauen“, der einfach gut und besser werkelt sld so mache „orginal“ Steuerung :eek:

Gut, bin erst mit der Beta 4 von IPS angefangen, aber dadurch habe ich den Vorteil, kein Altlasten im System zu haben.:rolleyes: …

Super Script tomgr!
Läuft ohne Anpassung super auf dem Pi2. Danke!

Danke papaschlumpf,

aber das geht bestimmt noch besser, mit allen Dingen.
Wenn ich mal die Zeit finde, werde ich das erweitern. Im Moment mach ich nur die Dinge, die ich hier im Haus brauche.:eek:
Wie schon gesagt, bis jetzt habe ich keine Probleme mit IPS auf meinen Pi’s, Windows IPS Server fasse ich nicht an.
Da IPS auf dem Pi bist jetzt sehr stabil läuft, lasse ich auch IPS mit 1wire meine Heizungsanlage komplett seit DEZ 2015 regeln, einziger Ausfall, die Zeitumstellung, aber der „Wachhund“ hat es gerichtet:D
Ich habe jedenfalls kein Memory Leak auf den Pi’s bei mir feststellen können, was aber nichts heist.:loveips: