Condividi tramite


Eventi ETW del pool di thread

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

Esistono due gruppi di eventi del pool di thread:

Eventi del pool di thread di lavoro

Questi eventi sono correlati al pool di thread di lavoro del runtime e forniscono notifiche per gli eventi thread (ad esempio, quando un thread viene creato o arrestato). Il pool di thread di lavoro usa un algoritmo adattivo per il controllo della concorrenza, dove il numero di thread viene calcolato in base alla velocità effettiva misurata. Gli eventi di pool del thread di lavoro possono essere usati per comprendere come un'applicazione usa il pool di thread e l'effetto che alcuni carichi di lavoro possono avere sul controllo della concorrenza.

ThreadPoolWorkerThreadStart e ThreadPoolWorkerThreadStop

La tabella seguente illustra la parola chiave e il livello per questi eventi Per altre informazioni, vedere CLR ETW Keywords and Levels.

Parola chiave per la generazione dell'evento Level
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento.

Evento ID evento Generato quando
ThreadPoolWorkerThreadStart 50 Viene creato un thread di lavoro.
ThreadPoolWorkerThreadStop 51 Viene arrestato un thread di lavoro.
ThreadPoolWorkerThreadRetirementStart 52 Viene ritirato un thread di lavoro.
ThreadPoolWorkerThreadRetirementStop 53 Un thread di lavoro ritirato diventa nuovamente attivo.

La tabella seguente mostra i dati dell'evento.

Nome del campo Tipo di dati Descrizione
ActiveWorkerThreadCount win:UInt32 Numero di thread di lavoro disponibili per l'elaborazione di lavoro, inclusi quelli che già elaborano il lavoro.
RetiredWorkerThreadCount win:UInt32 Il numero di thread di lavoro che non sono disponibili per l'elaborazione di lavoro, ma che vengono mantenuti in riserva nel caso in cui più thread sono necessari in un secondo momento.
ClrInstanceID win:UInt16 ID univoco per l'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 thread (controllo della concorrenza). Le informazioni vengono usate internamente dal pool del thread di lavoro.

ThreadPoolWorkerThreadAdjustmentSample

La tabella seguente illustra la parola chiave e il livello

Parola chiave per la generazione dell'evento Level
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento.

Evento ID evento Descrizione
ThreadPoolWorkerThreadAdjustmentSample 54 Fa riferimento alla raccolta di informazioni per un esempio, ovvero una misurazione della velocità effettiva con un livello determinato di concorrenza in un istante di tempo.

La tabella seguente mostra i dati dell'evento.

Nome del campo Tipo di dati Descrizione
Velocità effettiva win:Double Numero di completamenti per unità di tempo.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

ThreadPoolWorkerThreadAdjustmentAdjustment

La tabella seguente illustra la parola chiave e il livello

Parola chiave per la generazione dell'evento Level
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento.

Evento ID evento Descrizione
ThreadPoolWorkerThreadAdjustmentAdjustment 55 Registra una modifica nel controllo, quando l'algoritmo di inserimento thread (spostamento verso l’alto) determina che una modifica nel livello di concorrenza è attiva.

La tabella seguente mostra i dati dell'evento.

Nome del 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 test in corso.

0x02 - Spostamento casuale.

0x03 - Spostamento verso l’alto.

0x04 - Modificare il punto.

0x05 - Stabilizzazione.

0x06 - Esaurimento delle risorse.

0x07 - Timeout del thread.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

ThreadPoolWorkerThreadAdjustmentStats

La tabella seguente illustra la parola chiave e il livello

Parola chiave per la generazione dell'evento Level
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento.

Evento ID evento Descrizione
ThreadPoolWorkerThreadAdjustmentStats 56 Raccoglie i dati nel pool di thread.

La tabella seguente mostra i dati dell'evento.

Nome del campo Tipo di dati Descrizione
Durata win:Double Quantità di tempo, espresso in secondi, durante il quale sono state raccolte queste statistiche.
Velocità effettiva 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 L'aumento relativo di velocità effettiva causata dalle variazioni nel numero di thread di lavoro attivi durante questo intervallo.
Attendibilità win:Double Una misura della validità del campo ThroughputRatio.
NewcontrolSetting win:Double Il numero di thread di lavoro attivi che verrà utilizzato come base per le variazioni future nel conteggio dei thread attivi.
NewThreadWaveMagnitude win:UInt16 La grandezza delle variazioni future nel conteggio dei thread attivi.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

Eventi dei Thread di I/O

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

IOThreadCreate_V1

La tabella seguente illustra la parola chiave e il livello

Parola chiave per la generazione dell'evento Level
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento.

Evento ID evento Generato quando
IOThreadCreate_V1 44 Viene creato un thread di I/O nel pool di thread.

La tabella seguente mostra i dati dell'evento.

Nome del campo Tipo di dati Descrizione
Conteggio win:UInt64 Numero di thread di I/O, tra cui il thread appena creato.
NumRetired win:UInt64 Numero di thread di lavoro ritirato.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

IOThreadRetire_V1

La tabella seguente illustra la parola chiave e il livello

Parola chiave per la generazione dell'evento Level
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento.

Evento ID evento Generato quando
IOThreadRetire_V1 46 Un thread di I/O diventa un candidato al ritiro.

La tabella seguente mostra i dati dell'evento.

Nome del campo Tipo di dati Descrizione
Conteggio win:UInt64 Numero di thread di I/O rimanenti nel pool di thread.
NumRetired win:UInt64 Numero di thread di I/O ritirato.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

IOThreadUnretire_V1

La tabella seguente illustra la parola chiave e il livello

Parola chiave per la generazione dell'evento Level
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento.

Evento ID evento Generato quando
IOThreadUnretire_V1 47 Un thread di I/O viene ritirato a causa dell’I/O pervenuto entro un periodo di attesa dopo che il thread diventa un candidato al ritiro.

La tabella seguente mostra i dati dell'evento.

Nome del 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 ritirato.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

IOThreadTerminate

La tabella seguente illustra la parola chiave e il livello

Parola chiave per la generazione dell'evento Level
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento.

Evento ID evento Generato quando
IOThreadTerminate 45 Un thread di I/O viene terminato nel pool di thread.

La tabella seguente mostra i dati dell'evento.

Nome del campo Tipo di dati Descrizione
Conteggio win:UInt64 Numero di thread di I/O rimanenti nel pool di thread.
NumRetired win:UInt64 Numero di thread di I/O ritirato.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

Vedi anche