Condividi tramite


Eventi ETW del pool di thread

Questi eventi raccolgono informazioni sui thread di lavoro e sui thread di I/O.

Esistono due gruppi di eventi del pool di thread:

  • Eventi del pool di thread di lavoro, i quali forniscono informazioni sul modo in cui un'applicazione utilizza il pool di thread e sull'effetto dei carichi di lavoro sul controllo della concorrenza.

  • Eventi del pool di thread di I/O che forniscono informazioni sui thread di I/O creati, ritirati, non ritirati o terminati nel pool di thread.

Eventi del pool di thread di lavoro

Questi eventi riguardano il pool dei thread di lavoro del runtime e forniscono notifiche per gli eventi dei thread (ad esempio, quando un thread viene creato o arrestato). Il pool dei thread di lavoro utilizza un algoritmo adattivo per il controllo della concorrenza, nel quale il numero di thread viene calcolato in base alla velocità effettiva misurata. Gli eventi del pool di thread di lavoro possono essere utilizzati per comprendere il modo in cui un'applicazione utilizza il pool di thread e l'effetto che alcuni carichi di lavoro possono avere sul controllo della concorrenza.

ThreadPoolWorkerThreadStart e ThreadPoolWorkerThreadStop

Nella tabella riportata di seguito vengono mostrate la parole chiave e il livello relativi a questi eventi. Per ulteriori informazioni, vedere Parole chiave e livelli ETW di CLR.

Parola chiave per la generazione dell'evento

Livello

ThreadingKeyword (0x10000)

Informational (4)

Nella tabella riportata di seguito vengono illustrate le informazioni sull'evento.

Evento

ID evento

Condizione di generazione

ThreadPoolWorkerThreadStart

50

Un thread di lavoro viene creato.

ThreadPoolWorkerThreadStop

51

Un thread di lavoro viene arrestato.

ThreadPoolWorkerThreadRetirementStart

52

Un thread di lavoro viene ritirato.

ThreadPoolWorkerThreadRetirementStop

53

Un thread di lavoro ritirato diventa nuovamente attivo.

Nella tabella riportata di seguito vengono illustrati i dati relativi all'evento.

Nome campo

Tipo di dati

Descrizione

ActiveWorkerThreadCount

win:UInt32

Numero di thread di lavoro disponibili per l'elaborazione del lavoro, inclusi quelli che stanno già elaborando il lavoro.

RetiredWorkerThreadCount

win:UInt32

Numero di thread di lavoro non disponibili per l'elaborazione del lavoro, tenuti però come riserva nel caso siano necessari più thread in un secondo momento.

ClrInstanceID

Win:UInt16

ID univoco dell'istanza di CLR o CoreCLR.

ThreadPoolWorkerThreadAdjustment

Questi eventi del pool di thread forniscono informazioni per la comprensione e il debug del comportamento dell'algoritmo di inserimento dei thread (controllo della concorrenza). Le informazioni vengono utilizzate internamente dal pool dei thread di lavoro.

ThreadPoolWorkerThreadAdjustmentSample

Nella tabella seguente vengono riportate le parole chiave e il livello.

Parola chiave per la generazione dell'evento

Livello

ThreadingKeyword (0x10000)

Informational (4)

Nella tabella riportata di seguito vengono illustrate le informazioni sull'evento.

Evento

ID evento

Descrizione

ThreadPoolWorkerThreadAdjustmentSample

54

Fa riferimento alla raccolta di informazioni per un campione, vale a dire una misurazione della velocità effettiva con un determinato livello di concorrenza in un istante di tempo.

Nella tabella riportata di seguito vengono illustrati i dati relativi all'evento.

Nome campo

Tipo di dati

Descrizione

Throughput

win:Double

Numero di completamenti per unità di tempo.

ClrInstanceID

Win:UInt16

ID univoco dell'istanza di CLR o CoreCLR.

ThreadPoolWorkerThreadAdjustmentAdjustment

Nella tabella seguente vengono riportate le parole chiave e il livello.

Parola chiave per la generazione dell'evento

Livello

ThreadingKeyword (0x10000)

Informational (4)

Nella tabella riportata di seguito vengono illustrate le informazioni sull'evento.

Evento

ID evento

Descrizione

ThreadPoolWorkerThreadAdjustmentAdjustment

55

Registra una modifica nel controllo quando l'algoritmo di inserimento dei thread (hill-climbing) determina l'implementazione di una modifica nel livello di concorrenza.

Nella tabella riportata di seguito vengono illustrati i dati relativi all'evento.

Nome campo

Tipo di dati

Descrizione

AverageThroughput

win:Double

Velocità effettiva media di un campione di misurazioni.

NewWorkerThreadCount

win:UInt32

Nuovo numero di thread di lavoro attivi.

Motivo

win:UInt32

Motivo della modifica.

0x00 - Riscaldamento.

0x01 - Inizializzazione.

0x02 - Spostamento casuale.

0x03 - Spostamento di ascensione.

0x04 - Punto di modifica.

0x05 - Stabilizzazione.

0x06 - Esaurimento delle risorse.

0x07 - Timeout del thread.

ClrInstanceID

Win:UInt16

ID univoco dell'istanza di CLR o CoreCLR.

ThreadPoolWorkerThreadAdjustmentStats

Nella tabella seguente vengono riportate le parole chiave e il livello.

Parola chiave per la generazione dell'evento

Livello

ThreadingKeyword (0x10000)

Informational (4)

Nella tabella riportata di seguito vengono illustrate le informazioni sull'evento.

Evento

ID evento

Descrizione

ThreadPoolWorkerThreadAdjustmentStats

56

Raggruppa i dati nel pool di thread.

Nella tabella riportata di seguito vengono illustrati i dati relativi all'evento.

Nome campo

Tipo di dati

Descrizione

Durata

win:Double

Quantità di tempo, in secondi, durante la quale sono state raccolte queste statistiche.

Throughput

win:Double

Numero medio di completamenti al secondo durante questo intervallo.

ThreadWave

win:Double

Riservato per utilizzo interno.

ThroughputWave

win:Double

Riservato per utilizzo interno.

ThroughputErrorEstimate

win:Double

Riservato per utilizzo interno.

AverageThroughputErrorEstimate

win:Double

Riservato per utilizzo interno.

ThroughputRatio

win:Double

Miglioramento relativo nella velocità effettiva causato dalle variazioni nel conteggio dei thread di lavoro attivi durante questo intervallo.

Confidence

win:Double

Misura di validità del campo ThroughputRatio.

NewcontrolSetting

win:Double

Numero di thread di lavoro attivi che servirà da linea di base per le variazioni future nel conteggio dei thread attivi.

NewThreadWaveMagnitude

Win:UInt16

Grandezza delle variazioni future nel conteggio dei thread attivi.

ClrInstanceID

Win:UInt16

ID univoco dell'istanza di CLR o CoreCLR.

Torna all'inizio

Eventi dei thread di I/O

Questi eventi si verificano per i thread nel pool dei thread di I/O (porte di completamento), che è asincrono.

IOThreadCreate_V1

Nella tabella seguente vengono riportate le parole chiave e il livello.

Parola chiave per la generazione dell'evento

Livello

ThreadingKeyword (0x10000)

Informational (4)

Nella tabella riportata di seguito vengono illustrate le informazioni sull'evento.

Evento

ID evento

Condizione di generazione

IOThreadCreate_V1

44

Un thread di I/O viene creato nel pool di thread.

Nella tabella riportata di seguito vengono illustrati i dati relativi all'evento.

Nome campo

Tipo di dati

Descrizione

Conteggio

win:UInt64

Numero di thread di I/O, incluso il thread appena creato.

NumRetired

win:UInt64

Numero di thread di lavoro ritirati.

ClrInstanceID

Win:UInt16

ID univoco dell'istanza di CLR o CoreCLR.

IOThreadRetire_V1

Nella tabella seguente vengono riportate le parole chiave e il livello.

Parola chiave per la generazione dell'evento

Livello

ThreadingKeyword (0x10000)

Informational (4)

Nella tabella riportata di seguito vengono illustrate le informazioni sull'evento.

Evento

ID evento

Condizione di generazione

IOThreadRetire_V1

46

Un thread di I/O diventa un candidato al ritiro.

Nella tabella riportata di seguito vengono illustrati i dati relativi all'evento.

Nome campo

Tipo di dati

Descrizione

Conteggio

win:UInt64

Numero di thread di I/O restanti nel pool di thread.

NumRetired

win:UInt64

Numero di thread di I/O ritirati.

ClrInstanceID

Win:UInt16

ID univoco dell'istanza di CLR o CoreCLR.

IOThreadUnretire_V1

Nella tabella seguente vengono riportate le parole chiave e il livello.

Parola chiave per la generazione dell'evento

Livello

ThreadingKeyword (0x10000)

Informational (4)

Nella tabella riportata di seguito vengono illustrate le informazioni sull'evento.

Evento

ID evento

Condizione di generazione

IOThreadUnretire_V1

47

Un thread di I/O non viene ritirato poiché l'I/O giunge entro un periodo di attesa dopo che il thread diventa un candidato al ritiro.

Nella tabella riportata di seguito vengono illustrati i dati relativi all'evento.

Nome campo

Tipo di dati

Descrizione

Conteggio

win:UInt64

Numero di thread di I/O nel pool di thread, incluso il presente.

NumRetired

win:UInt64

Numero di thread di I/O ritirati.

ClrInstanceID

Win:UInt16

ID univoco dell'istanza di CLR o CoreCLR.

IOThreadTerminate

Nella tabella seguente vengono riportate le parole chiave e il livello.

Parola chiave per la generazione dell'evento

Livello

ThreadingKeyword (0x10000)

Informational (4)

Nella tabella riportata di seguito vengono illustrate le informazioni sull'evento.

Evento

ID evento

Condizione di generazione

IOThreadTerminate

45

Un thread di I/O viene creato nel pool di thread.

Nella tabella riportata di seguito vengono illustrati i dati relativi all'evento.

Nome campo

Tipo di dati

Descrizione

Conteggio

win:UInt64

Numero di thread di I/O restanti nel pool di thread.

NumRetired

win:UInt64

Numero di thread di I/O ritirati.

ClrInstanceID

Win:UInt16

ID univoco dell'istanza di CLR o CoreCLR.

Torna all'inizio

Vedere anche

Concetti

Eventi ETW di CLR