Hatte kürzlich (aus eigenem verschulden) einige Probleme zu vielen zugleich gestarteten PHP Threads.
Die Thread Übersicht ist zwar nice, zeigt aber im Grunde genommen nur einen Teil der Wahrheit. Die Anzeige erfolgt ja nicht in Echtzeit sondern ist durch die Latenz der Konsole limitiert. Von da her kann sie ja nur einen groben Hinweis der Systemauslastung geben, aber nicht mehr.
Um in diesem Bereich zu debuggen wäre es ggfl. hilfreich wenn man Trigger setzen könnte welche dann ein Abbild der aktuell laufenden Threadübersicht einfriert. Oder meinetwegen auch in ein File logged falls das leichter ist.
Hilfreiche Trigger wären zb:
Triggere wenn mehr als x Threads aktiv
Triggere wenn ein bestimmetes Script aktiv + Zeitverzögerung um die von diesem Script ausgelösten Threads zu sehen
Triggere wenn ein Thread länger als x Sekunden aktiv
euch Profis fallen sicher noch weiter hilfreiche Metriken ein um zb. diese Dinger zu debuggen:
@paresy: Danke, kenne natürlich die Spezialschalter, werde mir das Video aber mal ansehen. ggfl. ist ja das dabei was dabei das ich suche.
@Nall-Chan: Ja freilich sind das soweit nur „unkritische“ Debugausgaben. Sie sind aber wichtig, weil sie zeigen das es unerwartete Verzögerungen im System gibt. Nun gilt es rauszufinden woher die Verzögerungen kommen.
btw. Dein Plugwise Modul ist bspw. so ein Kandidat. Zeitweise ist die Threadansicht komplett voll davon. Da es aber nur für 1-2 Sekunden aufblitzt ist es viel zu kurz um zu lesen was das alles vor sich geht.
Genau da würde eine Art Snapshot ansetzen um das Systemverhalten besser zu verstehen.
@bumaas: Mit hängenden Threads hab ich zum Glück nie Probleme, dahingehend ist alles sauber. Es geht mehr in die Richtung wie ich es am Beispiel vom Plugwise Modul beschrieben habe. Die Konsole zeigt mir an das zweitweise die Threads knapp werden.
Da es aber so schnell geht kann man nicht lesen WAS da alles zugleich läuft.
Ja, weil das die Wartezeit beim Datenaustausch ist. Da ist das Timeout (idr bei allen üblichen Modulen) 5 Sekunden.
Und gerade weil das nur Debugausgaben sind, würde ich die im Log einfach ausschalten und Ende.
Kritische Themen loggt Symcon ja. Da dort setzt ja auch der Integrity Check an.
Nicht wirklich… Weil die Warteschlange welche Symcon intern vorhält nicht angezeigt wird. Erst wenn du entsprechende Meldungen im Log hast, dann sind die Threads zu knapp.
Michael