Freigeben über


ETW-Threadpoolereignisse

Diese Ereignisse sammeln Informationen zu Arbeits- und E/A-Threads.

Es gibt zwei Gruppen von Threadpoolereignissen:

  • Arbeitsthreadpoolereignisse, die Aufschluss darüber geben, wie eine Anwendung den Threadpool verwendet und welchen Effekt Arbeitsauslastungen auf die Parallelitätssteuerung haben.

  • E/A-Threadpoolereignisse, die Aufschluss über E/A-Threads geben, die im Threadpool erstellt, deaktiviert, erneut aktiviert oder beendet werden.

Arbeitsthreadpoolereignisse

Diese Ereignisse beziehen sich auf den Arbeitsthreadpool der Laufzeit und stellen Benachrichtigungen für Threadereignisse bereit (wenn z. B. ein Thread erstellt oder beendet wird). Der Arbeitsthreadpool verwendet einen adaptiven Algorithmus für die Parallelitätssteuerung, bei dem die Anzahl der Threads auf Basis des gemessenen Durchsatzes berechnet wird. Arbeitsthreadpoolereignisse können dazu verwendet werden zu verstehen, wie eine Anwendung den Threadpool verwendet und welche Auswirkungen bestimmte Arbeitsauslastungen möglicherweise auf die Parallelitätssteuerung haben.

ThreadPoolWorkerThreadStart und ThreadPoolWorkerThreadStop

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene für diese Ereignisse an. (Weitere Informationen finden Sie unter CLR ETW Keywords and Levels.)

Schlüsselwort zum Auslösen des Ereignisses Ebene
ThreadingKeyword (0x10000) Information (4)

Die folgende Tabelle zeigt die Ereignisinformationen an.

Ereignis Ereignis-ID Wird ausgelöst, wenn
ThreadPoolWorkerThreadStart 50 Ein Arbeitsthread wird erstellt.
ThreadPoolWorkerThreadStop 51 Ein Arbeitsthread wird beendet.
ThreadPoolWorkerThreadRetirementStart 52 Ein Arbeitsthread wird deaktiviert.
ThreadPoolWorkerThreadRetirementStop 53 Ein deaktivierter Arbeitsthread wird wieder aktiviert.

Die folgende Tabelle zeigt die Ereignisdaten an.

Feldname Datentyp BESCHREIBUNG
ActiveWorkerThreadCount win:UInt32 Die Anzahl der Arbeitsthreads, die zum Verarbeiten der Arbeitsvorgänge verfügbar sind, einschließlich der Threads, die bereits Arbeitsvorgänge verarbeiten.
RetiredWorkerThreadCount win:UInt32 Die Anzahl der Arbeitsthreads, die nicht zum Verarbeiten von Arbeitsvorgängen verfügbar sind, die aber für den Fall als Reserve vorgehalten werden, dass später weitere Threads benötigt werden.
ClrInstanceID Win:UInt16 Eindeutige ID für die Instanz von CLR oder CoreCLR.

ThreadPoolWorkerThreadAdjustment

Diese Threadpoolereignisse bieten Informationen, um das Verhalten des Algorithmus zur Threadinjektion (Parallelitätssteuerung) zu verstehen und zu debuggen. Die Informationen werden intern vom Arbeitsthreadpool verwendet.

ThreadPoolWorkerThreadAdjustmentSample

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene an.

Schlüsselwort zum Auslösen des Ereignisses Ebene
ThreadingKeyword (0x10000) Information (4)

Die folgende Tabelle zeigt die Ereignisinformationen an.

Ereignis Ereignis-ID BESCHREIBUNG
ThreadPoolWorkerThreadAdjustmentSample 54 Bezieht sich auf die Auflistung von Informationen für ein Beispiel, d. h. eine Messung des Durchsatzes mit einer bestimmten Parallelitätsebene zu einem bestimmten Zeitpunkt.

Die folgende Tabelle zeigt die Ereignisdaten an.

Feldname Datentyp BESCHREIBUNG
Throughput win:Double Anzahl von Abschlüssen pro Zeiteinheit.
ClrInstanceID Win:UInt16 Eindeutige ID für die Instanz von CLR oder CoreCLR.

ThreadPoolWorkerThreadAdjustmentAdjustment

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene an.

Schlüsselwort zum Auslösen des Ereignisses Ebene
ThreadingKeyword (0x10000) Information (4)

Die folgende Tabelle zeigt die Ereignisinformationen an.

Ereignis Ereignis-ID BESCHREIBUNG
ThreadPoolWorkerThreadAdjustmentAdjustment 55 Zeichnet eine Änderung der Steuerung auf, wenn der Algorithmus zur Threadinjektion (Hill-Climbing) ermittelt, dass auf der Parallelitätsebene eine Änderung vorgenommen wird.

Die folgende Tabelle zeigt die Ereignisdaten an.

Feldname Datentyp BESCHREIBUNG
AverageThroughput win:Double Durchschnittlicher Durchsatz für eine Stichprobe von Messungen.
NewWorkerThreadCount win:UInt32 Neue Anzahl aktiver Arbeitsthreads.
`Reason` win:UInt32 Grund für die Anpassung.

0x00 – Aufwärmphase.

0x01 – Initialisierung.

0x02 - Zufällige Verschiebung.

0x03 – Steigende Verschiebung.

0x04 – Änderungspunkt.

0x05 – Stabilisierung.

0x06 – Außerkraftsetzung.

0x07 – Zeitlimit für Thread überschritten.
ClrInstanceID Win:UInt16 Eindeutige ID für die Instanz von CLR oder CoreCLR.

ThreadPoolWorkerThreadAdjustmentStats

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene an.

Schlüsselwort zum Auslösen des Ereignisses Ebene
ThreadingKeyword (0x10000) Information (4)

Die folgende Tabelle zeigt die Ereignisinformationen an.

Ereignis Ereignis-ID BESCHREIBUNG
ThreadPoolWorkerThreadAdjustmentStats 56 Erfasst Daten zum Threadpool.

Die folgende Tabelle zeigt die Ereignisdaten an.

Feldname Datentyp BESCHREIBUNG
Duration win:Double Zeitdauer in Sekunden, in der diese statistischen Daten erfasst wurden.
Throughput win:Double Durchschnittliche Anzahl von Abschlüssen pro Sekunde während dieses Intervalls.
ThreadWave win:Double Für die interne Verwendung reserviert.
ThroughputWave win:Double Für die interne Verwendung reserviert.
ThroughputErrorEstimate win:Double Für die interne Verwendung reserviert.
AverageThroughputErrorEstimate win:Double Für die interne Verwendung reserviert.
ThroughputRatio win:Double Die relative Verbesserung beim Durchsatz, die durch Abweichungen bei der aktiven Arbeitsthreadanzahl während dieses Intervalls verursacht wurde.
Confidence win:Double Ein Maß für die Gültigkeit des „ThroughputRatio“-Felds.
NewcontrolSetting win:Double Die Anzahl der aktiven Arbeitsthreads, die als Grundlage für zukünftige Abweichungen bei der Anzahl aktiver Threads dienen werden.
NewThreadWaveMagnitude Win:UInt16 Das Ausmaß zukünftiger Abweichungen bei der Anzahl aktiver Threads.
ClrInstanceID Win:UInt16 Eindeutige ID für die Instanz von CLR oder CoreCLR.

E/A-Threadereignisse

Diese Threadpoolereignisse treten für Threads im E/A-Threadpool (Abschlussanschluss) auf, der asynchron ist.

IOThreadCreate_V1

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene an.

Schlüsselwort zum Auslösen des Ereignisses Ebene
ThreadingKeyword (0x10000) Information (4)

Die folgende Tabelle zeigt die Ereignisinformationen an.

Ereignis Ereignis-ID Wird ausgelöst, wenn
IOThreadCreate_V1 44 Ein E/A-Thread wird im Threadpool erstellt.

Die folgende Tabelle zeigt die Ereignisdaten an.

Feldname Datentyp BESCHREIBUNG
Anzahl win:UInt64 Anzahl der E/A-Threads, einschließlich des neu erstellten Threads.
NumRetired win:UInt64 Anzahl deaktivierter Arbeitsthreads.
ClrInstanceID Win:UInt16 Eindeutige ID für die Instanz von CLR oder CoreCLR.

IOThreadRetire_V1

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene an.

Schlüsselwort zum Auslösen des Ereignisses Ebene
ThreadingKeyword (0x10000) Information (4)

Die folgende Tabelle zeigt die Ereignisinformationen an.

Ereignis Ereignis-ID Wird ausgelöst, wenn
IOThreadRetire_V1 46 Ein E/A-Thread wird zum Kandidaten für die Deaktivierung.

Die folgende Tabelle zeigt die Ereignisdaten an.

Feldname Datentyp BESCHREIBUNG
Anzahl win:UInt64 Anzahl der im Threadpool verbleibenden E/A-Threads.
NumRetired win:UInt64 Anzahl deaktivierter E/A-Threads.
ClrInstanceID Win:UInt16 Eindeutige ID für die Instanz von CLR oder CoreCLR.

IOThreadUnretire_V1

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene an.

Schlüsselwort zum Auslösen des Ereignisses Ebene
ThreadingKeyword (0x10000) Information (4)

Die folgende Tabelle zeigt die Ereignisinformationen an.

Ereignis Ereignis-ID Wird ausgelöst, wenn
IOThreadUnretire_V1 47 Ein E/A-Threads wird aufgrund von E/A-Vorgängen erneut aktiviert, die während einer Wartefrist auftreten, nachdem der Thread zum Kandidaten für die Deaktivierung geworden ist.

Die folgende Tabelle zeigt die Ereignisdaten an.

Feldname Datentyp BESCHREIBUNG
Anzahl win:UInt64 Anzahl der E/A-Threads im Threadpool, einschließlich dieses Threads.
NumRetired win:UInt64 Anzahl deaktivierter E/A-Threads.
ClrInstanceID Win:UInt16 Eindeutige ID für die Instanz von CLR oder CoreCLR.

IOThreadTerminate

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene an.

Schlüsselwort zum Auslösen des Ereignisses Ebene
ThreadingKeyword (0x10000) Information (4)

Die folgende Tabelle zeigt die Ereignisinformationen an.

Ereignis Ereignis-ID Wird ausgelöst, wenn
IOThreadTerminate 45 Ein E/A-Thread wird im Threadpool beendet.

Die folgende Tabelle zeigt die Ereignisdaten an.

Feldname Datentyp BESCHREIBUNG
Anzahl win:UInt64 Anzahl der im Threadpool verbleibenden E/A-Threads.
NumRetired win:UInt64 Anzahl deaktivierter E/A-Threads.
ClrInstanceID Win:UInt16 Eindeutige ID für die Instanz von CLR oder CoreCLR.

Siehe auch