76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

Begonnen von DS_Starter, 11 Februar 2024, 14:11:00

Vorheriges Thema - Nächstes Thema

DS_Starter

Hallo zusammen,

in meinem contrib liegt ein Update der v2.10.6.

Manche/viele? kennen das Problem: Perl gibt intern nicht mehr benötigten Speicher (Hashes, Arrays, temporäre Strings) oft nicht direkt an das Betriebssystem zurück. Der Arbeitsspeicher des FHEM-Prozesses wächst dadurch im Laufe der Zeit kontinuierlich an (bei manchen sehr deutlich), obwohl die Daten längst verarbeitet sind. Von echten Speicherleaks mal abgesehen.

Ich habe eine regelmäßige Speicherbereinigung direkt in den Datenfluß integriert. Sobald ein Verarbeitungsdurchlauf abgeschlossen ist, fordert eine Funktion den Linux-Kernel explizit dazu auf, den ungenutzten Heap-Speicher wieder an das System freizugeben.

In meinen Tests zeigt sich eine deutliche und nachhaltige Reduktion des RAM-Footprints:

- deutlicher RAM-Rückgang: Die RAM-Belegung des Prozesses sinkt wieder auf das reale Minimum ab (siehe angehängter Plot).
  Der RAM fand ein Plateau und fiel nach Einsatz des Code sukszessive.
- stabilisierter RAM: Der Speicheranteil des FHEM Hauptprozesses reduziert sich bei mir um ca. 200 MB.
- minimaler Overhead: Die Ausführungszeit der Bereinigung liegt im Bereich von Bruchteilen einer Millisekunde und hat somit keinen spürbaren Einfluss auf die Performance.

Der Code läuft im Modul, hat aber Auswirkung auf das gesamte FHEM System.
Es ist eigentlich eine zentrale Funktionalität, die ich vielleicht in einem separaten kleinen Helper-Modul bereitstelle. Es kann allen geplagten Usern helfen ihre System zu stabilisieren. Klappt aber nur unter Linux.


Vorraussetzung:

Ihr müsst das Perl Modul FFI::Platypus in eurem System installieren. Das geht einfach mit dem FHEM Installer oder auf OS mit "apt install libffi-platypus-perl".
Danach rebooten. Wenn ihr das Modul nicht installiert passiert nichts, jedoch wird keine Speicherrückgabe durchgeführt.

Probiert es gerne mal aus.


LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter