Thread-Typen in ThingWorx
Die folgenden Threads sind in der Regel standardmäßig in der ThingWorx Umgebung verfügbar. Je nach Datenbank oder Anpassungen werden möglicherweise einige zusätzliche Thread-Typen angezeigt.
https nio (Anzahl der Threads: 1 bis mehr als 1024)
Threads, die für Benutzeranforderungen oder REST-Payloads verwendet werden. Alle externen Anforderungen erfolgen zunächst über die nio-Threads (nicht blockierend, E/A), bevor sie auf einem anderen Thread-Typ ausgeführt werden. Sie können mehr als 1024 Threads konfigurieren. In Apache Tomcat ist die Standardanzahl von Threads 150.
WSExecutionProcessor (Anzahl der Threads: mehr als 1000)
Threads, die für die Kommunikation mit Remotegeräten verwendet werden, z.B. Kepware. Im Allgemeinen werden nur wenige dieser Threads aktiv ausgeführt. 99 % der Zeit befinden sich diese Threads im Wartezustand. Diese Threads werden mit dem Untersystem für die WebSocket-Ausführungsverarbeitung konfiguriert. Ein Engpass in der Gerätekommunikation wird identifiziert, wenn alle diese Threads ausgelastet sind oder wenn das Untersystem für die WebSocket-Ausführungsverarbeitung eine wachsende Warteschlange von Ereignissen aufweist.
TWEventProcessor (Anzahl der Threads: mehr als 16)
Threads, die verwendet werden, um Code für alle Ereignisse, Zeitgeber und Scheduler auszuführen. Wenn diese Threads ausgelastet sind, werden die Ereignisse in eine Warteschlange gestellt. Wenn die Warteschlange eine erhebliche Anzahl von Ereignissen sichert, kann sich dies auf die Serverleistung auswirken. Wenn alle Ereignis-Threads ständig ausgelastet sind, reagiert der Server möglicherweise nicht, auch nicht auf Benutzereingaben. Diese Threads sind einer der Thread-Haupttypen, und es wird empfohlen, sie zu überwachen. Die Anzahl aktiver Threads ist konfigurierbar und kann mit dem Untersystem für die Ereignisverarbeitung überwacht werden. Ein Engpass bei der Ausführung von Ereignis, Zeitgeber oder Scheduler kann identifiziert werden, wenn alle Threads dieses Typs ausgelastet sind. In diesem Fall ist activeThreads im Untersystem des Ereignisprozessors konstant hoch, und die Warteschlange mit Ereignissen in diesem Untersystem in ThingWorx Composer wächst.
C3P0 (Anzahl der Threads: 3 bis 8)
Threads, die alle Datenbankverbindungen verwalten. Wenn die Threads längere Zeit blockiert sind, führt dies zu Datenbankzugriffsproblemen.
Zeitgeber oder Scheduler (Anzahl der Threads: 30 bis 40)
Threads, die verwendet werden, um Scheduler und Zeitgeber zu überwachen und auszulösen. Die Ausführung des Codes erfolgt auf TWEventProcessor-Threads. Diese Threads führen keine wichtigen Verarbeitungsaufgaben durch. Sie legen die Ereignisse zeitlich fest, die erforderlich sind, um die zusätzliche Verarbeitung zu starten.
pool (Anzahl der Threads: mehr als 40)
Threads, die zum Schreiben persistenter Eigenschaften-, Stream- und Wert-Stream-Einträge verwendet werden. Ein interner Zeitgeber löst diese Threads aus, und die meiste Zeit sind die Threads inaktiv. Einige dieser Threads entsprechen den Untersystemen für die Stream- und Wert-Stream-Verarbeitung. Wenn die Warteschlange in diesen Untersystemen wächst, deutet dies auf Probleme mit dem Datenbankdurchsatz hin. Die entsprechenden Threads sind nun aktiv.
Asynchrone Threads (Anzahl der Threads 1 bis mehr als 100)
Geschäftslogik wird für separate Threads ausgelöst, wenn die zugrunde liegenden Dienste als asynchron markiert sind. Die Anzahl der asynchronen Threads kann bis zu mehreren Tausend reichen. Der Name des Dienstes, der den Thread auslöst, ist Teil des Thread-Namens.
Verschiedene JVM- oder Tomcat Apache-Threads (Anzahl der Threads: mehr als 40)
Threads, die für interne Serveroperationen in der Tomcat Apache-Schicht verwendet werden. Im Allgemeinen werden diese Threads nicht analysiert, da sie keine Leistungsengpässe auslösen.
War dies hilfreich?