Memoryleak

Guten Morgen,

bin nicht 100% sicher ob ich mit meiner Vermutung richtig liege aber kann es sein das Symcon auf dem RPi ein Memoryleak hat?

Ich beobachte seit mehreren Wochen das nach ca. 4 Tagen das System anfängt zu swappen und nach ca. 6 Wochen geht nix mehr. Der Speicherverbrauch ist pro Process und Sub-Process 4,9% und nach 5 Tagen bei 7,4% und steigend. Das erklärt nicht wo der restliche Speicher verbleibt… das habe ich leider auch nicht rausbekommen :frowning:

Auf dem RPi läuft nur Symcon und zwei kleine Python Skripte, ein weiterer identischer RPi mit den Python Skripten aber ohne Symcon zeigt das Verhalten nicht.

Nach einem Neustart von Symcon ist die Speicherauslastung wieder bei ca. 4,9%, Memory kann man über „free && sync && echo 3 > /proc/sys/vm/drop_caches && echo „“ && free“ zurückbekommen.

Versuche mit „valgrind“ sind leider gescheitert, verliere dann einen großen Teil der KNX Nachrichten, weil Symcon dann gefühlte 99% langsamer läuft

kann dieses Verhalten von jemanden bestätigt werden oder ist das so „normal“ was ich mir nicht vorstellen kann!!!???

Guido

Ich kann dieses Verhalten ebenfalls beobachten. Bei mir läuft allerdings noch ein Ubiquiti Unifi Controller auf dem Pi2. Daher bin ich noch nicht zu. 100% sicher wer der Auslöser ist. Jedoch ist bei mir der Swap bereits nach einer Woche gefüllt und es geht fast nix mehr.

Unifi Controller läuft hier auch, wochenlang. Würde ich ausschließen.

echo 3 > /proc/sys/vm/drop_caches

Ist Makulatur :banghead: da du damit nur den Cache frei gibst und dieser wird automatisch freigegeben wenn er benötigt wird. Linux nutzt den freien Speicher immer als Cache da freier Speicher verschwendeter Speicher ist.

Ich empfehle immer nutzt „htop“ (apt-get install htop). Mann kann hier optischer besser erkennen was wirklich verbraucht wird. Der gelbe Balken kann immer ignoriert werden. Grün ist relevant!

stimmt schon was du sagst, war auch nicht der Punkt.

Es ging darum ob ein anderer Process den Speicher benutzt. Da man die caches (pagecache, indes u. entriss) so händisch freigeben kann wenn Symcon nicht läuft ist es wahrscheinlich das der Cache von Symcon „belegt“ wurde …

… klar, jetzt kommt das ABER :wink:

Magst du mir mal ein paar Details zu deinem System sagen? Das schwierige an einem Leak ist, dass man herfinden muss, woher es kommt. Und natürlich auch, ob es wirklich von IP-Symcon kommt. Im Prinzip würde das bedeuten du schaltest einige Teile vom IPS System mal ab und schaust, ob das Problem weiterhin auftritt.

paresy

Hi,

ist nix besonders KNX Anbindung ~1200 Variablen, 8 Timer, ca. 30 konfurierte Events…

so wie es aussieht ist es nicht Symcon selber, habe über die letzten Tage 6322 Memory Änderungen aufgezeichnet, es gibt einen minimalen Anstieg aber den kann man ignorieren. Ob das ein leak ist - keine Ahnung :smiley:

anbei htop screen dump vom start bis zum ‚swappen‘ und der Memory-Verbrauch des Binaries.



Ich würde aktuell sagen das ist völlig normal. Der Kernel schiebt auch Sachen in den SWAP wenn RAM theoretisch frei ist. Wir reden hier ja nur um wenige MB. Und man sieht wie dein Cache sich mit der Zeit füllt auch dass ist völlig normal. Der wäre sogar viel schneller voll, wenn auf der Maschine mehr passieren würde :smiley:

Hier mal ein vergleich nach 9 Tagen:

Bei einem MemoryLeak müsste der grüne Balken langsam immer weiter wachsen, bis der 100% Beträgt und dann sich der SWAP immer weiter füllt.