Danke für die Recherche, bin da leider nicht so bewandert... fürchte der LBS 19000523 von wintermute könnte das gleiche Problem haben, starte ich nicht so häufig, hat aber ähnliches Verhalten.
Ich Versuch erstmal das System zu stabilisieren, dann schau ich was ich weiter machen kann.
Ankündigung
Einklappen
Keine Ankündigung bisher.
LBS19000809 - Alexa Control
Einklappen
X
-
Habe mir das heute (bzw. gestern) nochmal etwas genauer angeschaut und konnte das Problem nachstellen. Je öfter man Status Info Update triggert, umso schneller läuft der Memory voll.
Die Ursache scheint ein Memory Leak in älteren Versionen von php-curl zu sein:
Siehe auch HIER ...
Damit ist da im Moment nicht wirklich was zu machen, da wir ja an PHP 5.3.3 gebunden sind.
Möglicherweise könnte man das Problem durch ein komplettes Redesign des LBS als Daemon, der dann immer denselben CURL-Handle verwendet, umgehen.
Als Quickfix Workaround kann man mit
den Cache regelmäßig wieder aufräumen. Dadurch wird der belegte Speicher wieder freigegeben. Das aber auf eigene Gefahr!Code:sync && echo 3 > /proc/sys/vm/drop_caches
Einen Kommentar schreiben:
-
Nach 40 Minuten von 7% aus 12% obwohl alle Ausgänge abgeklemmt waren...
Einen Kommentar schreiben:
-
Die Ausgabe zeigt nur, das der LBS nicht läuft, was ja auch richtig ist, denn nur wenn er getriggert wird, startet er kurz, aktualisiert die Ausgänge, beendet sich und gibt auch den Speicher wieder frei. Ich gehe davon aus, dass du den LBS komplett separiert hast, und dann nur den LBS deaktiviert/aktiviert hast.
Ich würde mal alle Ausgänge trennen und nur eine 16-fach Klemme zur Debugzwecken dranhängen. Damit kannst ausschließen, dass irgendeine getriggerte Logik das Speicherproblem auslöst.
Frohes Fest ...
VG
André
Einen Kommentar schreiben:
-
Hallo jonofe ,
hab heute mal wieder den Baustein aktiviert, nach 2 Stunden Laufzeit von 7% auf 18%.
Ausgabe des Befehls:
root 9643 0.0 0.0 105316 908 pts/1 S+ 14:00 0:00 grep 19000809
Ich kanns jetzt nicht wirklich interpretieren :-(
Refresh war aktuell alle 30 Sekunden, Gerät wurde in dem Zeitraum nicht benutzt (30 Sekunden aufgrund eines Logikfehlers)
SQL-Verbindungen sind wie beim Start 7 Stück vorhanden.
Als Telegrammgenerator nehme ich 16000117
Schöne Feiertage
Winni
P.S.: Hab gerade nochmal neu gestartet ohne den Refresh-Eingang zu verbinden, Telegrammgenerator läuft also trotzdem....Zuletzt geändert von Winni; 24.12.2017, 14:18.
Einen Kommentar schreiben:
-
Ich starte alle 5 Minuten im ausgeschalteten Zustand, ansonsten alle Minuten.
Zum entsprechenden Zeitpunkt waren alle Geräte aus....
Ich bleibe an dem Thema dran, im Moment ist der Baustein nicht aktiv, beim nächsten Mal werde ich deinen Tip ausprobieren. Danke
Einen Kommentar schreiben:
-
Wie oft machst du denn das Status Update an E19?
Du könntest mal prüfen, ob das EXEC Script evtl. nicht richtig beendet wird und dadurch viele Prozesse gleichzeitig laufen. Oder ggf. startest du es so oft, dass der letzte Aufruf noch nicht fertig ist, wenn der nächste erfolgt.
Code:ps axuw| grep 19000809
Einen Kommentar schreiben:
-
Wenn der Baustein aktiv ist, komme ich von 7% Speicherbedarf auf 18% in 4 Stunden. Habe die Probleme seit ca. 2 oder 3 Wochen und versuche die Ursache zu finden. Dauert natürlich etwas die Logiken nach und nach zu testen. Kann noch nicht sagen ob's noch anderen Probleme sind
Einen Kommentar schreiben:
-
Falsch steht es eigentlich nicht, denn es ist quasi am Ende des Skripts, da außerhalb der Funktionen. Und das Exec des Alexa Control Bausteins ist ja auch kein Daemon, sondern wird immer als eigener PHP Thread gestartet und nach Ausführung auch beendet. Dabei gibt PHP den gesamten Speicher wieder frei. Ich wüsste jetzt nicht wie dadurch Speicher "gefressen" werden sollte.
Wie bist du denn zu dem Schluß gekommen, dass es an diesem LBS liegt?
Einen Kommentar schreiben:
-
Ein Update des LBS ist jetzt als Version 0.2.1 verfügbar.
Hier werden jetzt nach jedem Befehl automatisch die Ausgänge geupdated (mit 1s Verzögerung, damit der Befehl auch ausgeführt wurde). Es gibt einen zusätzlichen Ausgang (A10), der die RAW JSON Status Infos des PlayerStates ausgibt, so dass bei Bedarf noch andere LBS dahinter geschaltet werden können.
- Likes 1
Einen Kommentar schreiben:
-
Zyklisch ist eher schwierig und würde ein Redesign erfordern, da der LBS dann als Daemon laufen müsste. Das würde ich gerne vermeiden. D.h. ich würde den Triggereingang so lassen wie er ist und er kann von extern zyklisch getriggert werden. Um den Systemtrigger zu umgehen kann man ja auch einen Telegrammgenerator verwenden. Und den automatischen Refresh werde ich dann nach einem Befehl machen. Zusätzlich den Ausgang mit dem Status-JSON String.
- Likes 1
Einen Kommentar schreiben:
-
Intern wäre natürlich auch ne gute Idee. Um flexibel zu bleiben ein Eingang mit fester Refreshzeit | Refreshzeit nach Befehl? Also zwei Werte, wobei der erste eine zyklische Abfrage triggert, der zweite die Wartezeit nach Befehl (0=ausgeschaltet). Die externen Sytemtrigger triggern immer viele Bausteine gleichzeitig, was man so umgehen könnte.
Einen Kommentar schreiben:


Einen Kommentar schreiben: