PHP Informationen ohne Hinweise auf Skript

Ich habe heute im Statusprotokoll um 2.54 Uhr den Eintrag (zu viele gleichzeitige Skripte, verwerfe Ausführung) entdeckt.

In den PHP Informationen habe ich folgendens entdeckt.


Das Skript vom ICal braucht zu lange, dass ist klar.
Aber auf was deutet die andere Medlung hin, da ist kein Skript markiert?
Wie kann ich das finden???

Danke.

Das Problem habe ich auch, aber die Ursache ist noch nicht klar…
Ich gehe davon aus, dass du mit diesem hängenden, namenlos Skript auch den Symcon-Dienst nicht sauber beenden kannst.

Ich hatte das jetzt 2 Tage hintereinander ich glaube jeweils um 2:54 Uhr.

Der Dienst lässt sich eigentlich schon beenden, manchmal dauert es halt ein wenig.

Folgende Module habe ich installiert.

Ich hab nur das Bild-Archiv wie du installiert, die anderen Module sind anders.
Bei mir kann es sogar sein, dass ein paar Tage kein Thread hängt.
Und der Dienst (Windows) lässt sich nicht mehr beenden, er muss gekillt werden.
@paresy nimmt sich dem Problem demnächst mal an, habe mein System entsprechend zur Diagnose vorbereitet.
Die Leistung wird aber von diesen hängenden Threads nicht beeinflusst (jedenfalls bei mir)

Also mein IPS hängt sich auch nicht auf.
Es läuft weiter. Bekomme nur die Meldung im Statusprotokoll.

Bei mir steht der ThreadCount auf 10 statt auf 50 .
Warum auch immer, hab da noch nie was verändert.
Das könnte die sache erklären.
Mein IPS wächst ja immer und 10 ist da vielleicht schon zu wenig.

10 ist auf jeden Fall falsch und auch zu wenig.
Du siehst in deinem Screenshot auch das Symcon 25 bereitstellt, was das Minimum ist.
50 wäre Standard.
Michael

Ich habe jetzt auf 50 gestellt und das wurde nach dem Neustart auch übernommen.
Jetzt sollte der Fehler mit den zi vielen Skripten nicht mehr auftreten.

Führ mal folgenden Code aus. Dann bekommst du raus, woher das Problem kommt.

<?php
$threadList = IPS_GetScriptThreadList();
$threadUsed = 0;
$ti = time();
foreach ($threadList as $t => $i) {
    $thread = IPS_GetScriptThread($i);
    if ($thread['StartTime'] == 0) {
        continue;
    }
    $threadUsed++;
    if(($ti-$thread['StartTime'])>60) {
        echo "\nseit ".(($ti-$thread['StartTime'])/3600)."h aktiv\n";
      Print_R($thread);
    } 
}
1 „Gefällt mir“

Hey danke.
Das ist super.
Habs schon getestet, muss wsl noch warten bis es in den PHP Informationen wieder Rot ist.

Mal schauen ob ich es erwische.

Also das bekomme ich aus Ausgabe.

seit 0,028055555555556h aktiv
Array
(
    [ThreadID] => 2
    [ExecuteCount] => 2470
    [ExecutionMin] => 2
    [ExecutionAvg] => 2
    [ExecutionMax] => 163875
    [StartTime] => 1699707824
    [Sender] => PHPModule
    [FilePath] => Timer: UpdateCalendar
    [ScriptID] => 0
    [PeakMemoryUsage] => 2097152
    [MemoryCleanups] => 3
)

Es scheint das iCAL Modul zu sein.