Cannot fork: Cannot allocate memory | BlockingInformParent

Begonnen von Burny4600, 14 Februar 2018, 10:33:06

Vorheriges Thema - Nächstes Thema

holle75

... und wie hast du das ---- libxml-xpath-perl 1.44-1 Raspbian:stable ---- gefunden?
Würde mich interessieren was bei mir läuft ... und warum bei xenos1984 damit das Problem behoben war ...

MadMax-FHEM

sudo apt-get -s install libxml-xpath-perl

Sofern du ebenfalls mit apt-get installiert hast...

Es wird dabei auch angezeigt, ob eine neuere Version verfügbar wäre...

Bei CPAN hab ich keine Ahnung.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

holle75

Ah, drüberinstallieren um die Version zu finden ;)

Ja Mist, hab auch schon 1.44.

Scheint, die Lösungsidee von xenos1984 funktioniert nur unter bestimmten Umständen.

MadMax-FHEM

Ja, "drüber installieren" SIMULIEREN (das -s) ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

popy

Zitat von: holle75 am 13 März 2020, 21:19:14
@MadMax .... welche XML::XPath Vers. läuft bei dir?

@popy .... mmh, irgendwie nach dem Großputz jetzt so weit downzugraden würde mir schwer fallen. Wenn ich dich richtig verstehe, hast du aber trotzdem noch (wenn auch zeitlich freundlicher) das Problem?

Das stimmt und dachte ich mir auch, aber ich kenne derzeit noch keinen anderen Weg...
Ja, das Thema habe ich noch, wenn auch nicht mehr so ausgeprägt wie am Anfang (da war der Speicher nach ein paar Tagen voll...)

pOpY

Wernieman

wobei mit CPAN es auch einen Schlater gibt, um ALLS zu aktualisieren .. google mal danach

allerdings bin ich bekein Freund von CPAN im Normalfalle .. genau aus den Gründen
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

holle75

Danke euch ... mmh, irgendwie ist das recht unbefriedigend, wenn man bei allen Variablen (OS, Perl, fhem) dann endlich auf dem allerneuesten Stand ist und von 2 Wochen Laufzeit bei 2-4 Tagen landet. Heftig.

Eigentlich sind einige der bis anhin genannten Verdächtigen bei mir essentiell (besonders HTTPMOD), aber dann fange ich wohl trotzdem mal mit dem Modul-Eliminierspiel an.

holle75

So, es ist genau ein HTTPMOD Device was mir den Speicher vollfährt. Leider ein recht essentielles, da es meine Solaranlage ausliest. Ohne dieses Device kein Anstieg seit 2 Tagen.
Aber vielleicht auch ein gutes Beispiel, um "böses" RegEx zu finden.

da es gerade eliminiert ist, direkt aus der cfg:
define XtenderReadout HTTPMOD none 10
attr XtenderReadout userattr get01Format get01Name get01Poll:0,1 get01PollDelay get01Regex get01URL get02Format get02Name get02Poll:0,1 get02Regex get02URL get03Name get03OMap get03Poll:0,1 get03PollDelay get03Regex get03URL get04Format get04Name get04Poll:0,1 get04Regex get04URL get05Format get05Name get05Poll:0,1 get05Regex get05URL get06Format get06Name get06Poll:0,1 get06PollDelay get06Regex get06URL get07Format get07Name get07Poll:0,1 get07PollDelay get07Regex get07URL readingMaxAge readingMaxAgeReplacement readingMaxAgeReplacementMode:text,reading,internal,expression,delete
attr XtenderReadout event-min-interval .*:1800
attr XtenderReadout event-on-change-reading Charge_Discharge_W:20,PV_Power_KW:0.05,PV_Power_W:50,Volt_Batt:0.3,SoC,Battery_cycle_phase,Temp_Batt,PV_Day_KWh
attr XtenderReadout event-on-update-reading .*
attr XtenderReadout get01Format %.1f
attr XtenderReadout get01Name SoC
attr XtenderReadout get01Poll 1
attr XtenderReadout get01PollDelay 60
attr XtenderReadout get01Regex <FloatValue>([1-9][0-9]\.?[0-9]?[0-9]?)
attr XtenderReadout get01URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=BSP&infoId=7002
attr XtenderReadout get02Format %.2f
attr XtenderReadout get02Name Volt_Batt
attr XtenderReadout get02Poll 1
attr XtenderReadout get02Regex <FloatValue>([1-3][0-9]\.?[0-9]?[0-9]?)
attr XtenderReadout get02URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=BSP&infoId=7000
attr XtenderReadout get03Name Battery_cycle_phase
attr XtenderReadout get03OMap 0:Bulk, 1:Absorption, 2:Equalize, 3:Floating, 6:R.Floating ,7:Per.Absorption
attr XtenderReadout get03Poll 1
attr XtenderReadout get03PollDelay 60
attr XtenderReadout get03Regex <FloatValue>([0-9])
attr XtenderReadout get03URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=VT1&infoId=11038
attr XtenderReadout get04Format %.2f
attr XtenderReadout get04Name PV_Power_KW
attr XtenderReadout get04Poll 1
attr XtenderReadout get04Regex <FloatValue>([0-1]\.?[0-9]?[0-9]?)
attr XtenderReadout get04URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=VT1&infoId=11004
attr XtenderReadout get05Format %2d
attr XtenderReadout get05Name Charge_Discharge_W
attr XtenderReadout get05Poll 1
attr XtenderReadout get05Regex <FloatValue>([-.0-9]+)
attr XtenderReadout get05URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=BSP&infoId=7003
attr XtenderReadout get06Format %.1f
attr XtenderReadout get06Name Temp_Batt
attr XtenderReadout get06Poll 1
attr XtenderReadout get06PollDelay 60
attr XtenderReadout get06Regex <FloatValue>([.0-9]*)
attr XtenderReadout get06URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=BSP&infoId=7029
attr XtenderReadout get07Format %.2f
attr XtenderReadout get07Name PV_Day_KWh
attr XtenderReadout get07Poll 1
attr XtenderReadout get07PollDelay 600
attr XtenderReadout get07Regex <FloatValue>([0-1]?[0-9]\.?[0-9]?[0-9]?)
attr XtenderReadout get07URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=VT1&infoId=11007
attr XtenderReadout group Xtender
attr XtenderReadout readingMaxAge 1200
attr XtenderReadout readingMaxAgeReplacement "outdated - was " . $val
attr XtenderReadout readingMaxAgeReplacementMode expression
attr XtenderReadout stateFormat {sprintf("Phase: %s - SoC: %.1f - PV: %2d Watt", ReadingsVal($name,"Battery_cycle_phase",0), ReadingsVal($name,"SoC",0), ReadingsVal($name,"PV_Power_W",0))}
attr XtenderReadout userReadings PV_Power_W {ReadingsVal("XtenderReadout","PV_Power_KW",0)*1000}
attr XtenderReadout verbose 2


werde das auch mal StefanStrobel im entsprechenden HTTPMOD Thread verlinken. Vielleicht fällt ihm ja was ein.

MadMax-FHEM

Zitat von: holle75 am 16 März 2020, 17:55:35
So, es ist genau ein HTTPMOD Device was mir den Speicher vollfährt. Leider ein recht essentielles, da es meine Solaranlage ausliest. Ohne dieses Device kein Anstieg seit 2 Tagen.
Aber vielleicht auch ein gutes Beispiel, um "böses" RegEx zu finden.

da es gerade eliminiert ist, direkt aus der cfg:
define XtenderReadout HTTPMOD none 10
attr XtenderReadout userattr get01Format get01Name get01Poll:0,1 get01PollDelay get01Regex get01URL get02Format get02Name get02Poll:0,1 get02Regex get02URL get03Name get03OMap get03Poll:0,1 get03PollDelay get03Regex get03URL get04Format get04Name get04Poll:0,1 get04Regex get04URL get05Format get05Name get05Poll:0,1 get05Regex get05URL get06Format get06Name get06Poll:0,1 get06PollDelay get06Regex get06URL get07Format get07Name get07Poll:0,1 get07PollDelay get07Regex get07URL readingMaxAge readingMaxAgeReplacement readingMaxAgeReplacementMode:text,reading,internal,expression,delete
attr XtenderReadout event-min-interval .*:1800
attr XtenderReadout event-on-change-reading Charge_Discharge_W:20,PV_Power_KW:0.05,PV_Power_W:50,Volt_Batt:0.3,SoC,Battery_cycle_phase,Temp_Batt,PV_Day_KWh
attr XtenderReadout event-on-update-reading .*
attr XtenderReadout get01Format %.1f
attr XtenderReadout get01Name SoC
attr XtenderReadout get01Poll 1
attr XtenderReadout get01PollDelay 60
attr XtenderReadout get01Regex <FloatValue>([1-9][0-9]\.?[0-9]?[0-9]?)
attr XtenderReadout get01URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=BSP&infoId=7002
attr XtenderReadout get02Format %.2f
attr XtenderReadout get02Name Volt_Batt
attr XtenderReadout get02Poll 1
attr XtenderReadout get02Regex <FloatValue>([1-3][0-9]\.?[0-9]?[0-9]?)
attr XtenderReadout get02URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=BSP&infoId=7000
attr XtenderReadout get03Name Battery_cycle_phase
attr XtenderReadout get03OMap 0:Bulk, 1:Absorption, 2:Equalize, 3:Floating, 6:R.Floating ,7:Per.Absorption
attr XtenderReadout get03Poll 1
attr XtenderReadout get03PollDelay 60
attr XtenderReadout get03Regex <FloatValue>([0-9])
attr XtenderReadout get03URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=VT1&infoId=11038
attr XtenderReadout get04Format %.2f
attr XtenderReadout get04Name PV_Power_KW
attr XtenderReadout get04Poll 1
attr XtenderReadout get04Regex <FloatValue>([0-1]\.?[0-9]?[0-9]?)
attr XtenderReadout get04URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=VT1&infoId=11004
attr XtenderReadout get05Format %2d
attr XtenderReadout get05Name Charge_Discharge_W
attr XtenderReadout get05Poll 1
attr XtenderReadout get05Regex <FloatValue>([-.0-9]+)
attr XtenderReadout get05URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=BSP&infoId=7003
attr XtenderReadout get06Format %.1f
attr XtenderReadout get06Name Temp_Batt
attr XtenderReadout get06Poll 1
attr XtenderReadout get06PollDelay 60
attr XtenderReadout get06Regex <FloatValue>([.0-9]*)
attr XtenderReadout get06URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=BSP&infoId=7029
attr XtenderReadout get07Format %.2f
attr XtenderReadout get07Name PV_Day_KWh
attr XtenderReadout get07Poll 1
attr XtenderReadout get07PollDelay 600
attr XtenderReadout get07Regex <FloatValue>([0-1]?[0-9]\.?[0-9]?[0-9]?)
attr XtenderReadout get07URL https://einServer.com/webservice.asmx/ReadUserInfo?email=net@xx.com&pwd=xxxxxx&installationNumber=111111&device=VT1&infoId=11007
attr XtenderReadout group Xtender
attr XtenderReadout readingMaxAge 1200
attr XtenderReadout readingMaxAgeReplacement "outdated - was " . $val
attr XtenderReadout readingMaxAgeReplacementMode expression
attr XtenderReadout stateFormat {sprintf("Phase: %s - SoC: %.1f - PV: %2d Watt", ReadingsVal($name,"Battery_cycle_phase",0), ReadingsVal($name,"SoC",0), ReadingsVal($name,"PV_Power_W",0))}
attr XtenderReadout userReadings PV_Power_W {ReadingsVal("XtenderReadout","PV_Power_KW",0)*1000}
attr XtenderReadout verbose 2


werde das auch mal StefanStrobel im entsprechenden HTTPMOD Thread verlinken. Vielleicht fällt ihm ja was ein.

Wie aktuell ist dein fhem!?

An HTTPMOD wurde ja was "gedreht"...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

holle75

#789
Alles komplett neu aufgesetzt + update FHEM vor 4 Tagen

$Id: 98_HTTPMOD.pm 21141 2020-02-07 19:36:06Z StefanStrobel $
# fhem Modul für Geräte mit Web-Oberfläche / Webservices

rudolfkoenig

In der HTTPMOD Doku steht bei regexDecode was ueber memory leak.
Falls das nicht hilft, wuerde ich auch regexpCompile=0 ausprobieren.

holle75

seit

attr <DEVICE> regexDecode utf-8

sieht es bis jetzt fantastisch aus. Dankeschön!

Ich beobachte.

holle75

... zu früh gefreut. Immer noch Ram Anstieg bis freeze, aber wesentlich! langsamer ....
Ich schaue weiter ...

holle75

... jetzt muß ich kurz mal (wieder) eine unqualifizierte Frage stellen: habe soeben fhem, was weiterhin ca. 50MB täglich Ram-Zugewinn anzeigt, beendet, mit htop geschaut, dass es auch sicher nicht mehr läuft und dann fhem neu gestartet.... den Raspi habe ich nicht neu gestartet.

Für mich interessanterweise, wurde kein RAM Total freigegeben (vor/nach fhem restart selbe Menge RAM in Benutzung. Nach ca. 2 Tagen 100MB mehr als nach Raspi Neustart). Auf die Idee, dass der Raspi RAM leakt und nicht unbedingt fhem, bin ich noch nicht gekommen.

Oder wie muß ich mir das erklären?

Gruß
H.

Frank_Huber

Perl nimmt sich ram, gibt ihn aber nicht wieder frei.
Innerhalb Perl wird er wohl recycled, aber auch nur was als "frei" markiert ist.
Daher hilft nur ein reboot um sicbtbar mehr ram zu haben.

Bin kein Perl Profi, meine das aber letzt in der Perl Ecke gelesen zu haben.

Gesendet von meinem S68Pro mit Tapatalk