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