Debug unter Windows - IPS friert ein - SNMP?

Hallo,
ich habe vor einer Woche mein IP-Symcon 6.0, Windows, 16.08.2021, 18956dae16ee von Windows 7 auf Server 2019 bei gleichzeitigem Hardwarewechsel (jetzt 4x mehr CPU Leistung, SSD und RAM ohne Ende) umgezogen.

Leider stürzt es seit zwei Tagen relgelmäßig ab. Letzte Änderung waren zwei Scripte mit SNMP_REALWALK welche auch sauber funktionieren.

Fehlerbild scheinen zuviele gleichzeitige Threads zu sein, dabei ist das System eigentlich unterfordert. Es gibt 5 Shellys (mit Kais Modul), ca. 10 Mini-Scripte die ca alle 5 Minuten Werte einsammeln, ein paar Webhooks sowie einen VoIP-Client.

Im Logfile steht leider nur „to Many Threads“ und ich möge den ThreadCount Wert noch höher setzen (aktuell bei 50). Ich sehe hierin aber keine Lösung, sondern nur eine kleine Verlagerung.

Wie kann ich herausfinden, wieso es jetzt hakt?
In der PHP-Informationen sehe ich nur sporadisch die Shelly Module auflaufen.

Nachtrag: Es scheint das neue SNMP Script hängen zu bleiben, ich verstehe aber nicht wieso. Führe ich es per Hand aus, geht es problemlos.

$a = snmprealwalk("sw-witten", "public", "iso.3.6.1.2.1.99.1.1.1.4.12001");
$i=0;
foreach($a as $ident => $value){
    $value = str_replace("INTEGER: ","", $value);
    $ident = str_replace(".","_",$ident);
    $id = IPS_GetObjectIDByIdent($ident, 28774);
    if($value>10){
        SetValue($id, $value);
    }
}

Nachtrag, auch ein SNMP Timeout bringt keine Veränderung:

$a = snmprealwalk("sw-witten", "public", "iso.3.6.1.2.1.99.1.1.1.4.12001", 2000000,0);

Also ich kann mittlerweile bestätigen, es muss an den SNMP Abfragen liegen. Deaktiviere ich diese, läuft das System wieder über länger Zeit zu und es bleiben keine verstopften Threads hängen.
Nur wie kann ich das Problem lösen?

Mittlerweile zwei Wochen vergangen. Leider keine Besserung. So kann ich natürlich keine SNMP Anfragen verarbeiten. Hat denn keiner eine Idee?

Habe das Thema leider übersehen. Ja, du solltest unbedingt die SNMP Extension meiden, da die bekannter weise abstürze produziert. Alternativ kannst du versuchen alle Skripte über Semaphoren zu serialisieren, sodass SNMP Anfragen niemals mehrfach laufen. Es gibt zu dem Thema bereits leider einige Bugreports bei PHP, aber keinen Termin bis wann oder ob dies jemands gelöst wird.

Alternativ gibt es Module, welche externe Programme zum Abfragen per exec aufrufen. Damit umgeht man das Problem ebenfalls.

paresy

Naja, wenn ich die serialisiere, bleibt der erste Durchgang stecken und es geht niemehr weiter.
Das ganze also per exec Auszulagern wäre dann die Option. Ich habe ein SNMP Modul gefunden, das hat aber überhaupt nicht funktioniert. Werde es dann wohl selber programmieren.