Partager via


Événements ETW de pool de threads

Ces événements collectent des informations sur les threads de travail et d'E/S.

Il existe deux groupes d'événements de pool de threads :

  • Les événements du pool de threads de travail, qui fournissent des informations sur la façon dont une application utilise le pool de threads, et l'effet des charges de travail sur le contrôle d'accès concurrentiel.

  • Les événements du pool de threads d'E/S, qui fournissent des informations sur les threads d'E/S créés, retirés, non retirés ou terminés dans le pool de threads.

Événements du pool de threads de travail

Ces événements sont liés au pool de threads de travail du runtime et fournissent des notifications pour les événements de thread (par exemple, lorsqu'un thread est créé ou arrêté). Le pool de threads de travail utilise un algorithme flexible pour le contrôle d'accès concurrentiel, où le nombre de threads est calculé en fonction du débit mesuré. Les événements du pool de threads de travail peuvent être utilisés pour comprendre comment une application utilise le pool de threads et l'effet que certaines charges de travail peuvent avoir sur le comportement du contrôle d'accès concurrentiel.

ThreadPoolWorkerThreadStart et ThreadPoolWorkerThreadStop

Le tableau suivant indique le mot clé et le niveau pour ces événements. (Pour plus d'informations consultez Niveaux et mots clés ETW du CLR.)

Mot clé destiné à déclencher l'événement.

Niveau

ThreadingKeyword (0x10000)

Informations (4)

Le tableau suivant indique les informations d'événement.

Événement

ID d'événement

Déclenché lorsque

ThreadPoolWorkerThreadStart

50

Un thread de travail est créé.

ThreadPoolWorkerThreadStop

51

Un thread de travail est arrêté.

ThreadPoolWorkerThreadRetirementStart

52

Un thread de travail est retiré.

ThreadPoolWorkerThreadRetirementStop

53

Un thread de travail retiré redevient actif.

Le tableau suivant répertorie les données d'événement.

Nom du champ

Type de données

Description

ActiveWorkerThreadCount

win:UInt32

Nombre de threads de travail disponibles pour traiter le travail, y compris ceux qui fonctionnent déjà.

RetiredWorkerThreadCount

win:UInt32

Nombre de threads de travail qui ne sont pas disponibles pour traiter le travail, mais qui sont conservés en réserve au cas où un plus grand nombre de threads seraient exigés ultérieurement.

ClrInstanceID

Win:UInt16

ID unique pour l'instance de CLR ou CoreCLR.

ThreadPoolWorkerThreadAdjustment

Ces événements de pool de threads fournissent des informations pour la bonne compréhension et le débogage du comportement de l'algorithme d'injection de thread (contrôle d'accès concurrentiel). Ces informations sont utilisées en interne par le pool de threads de travail.

ThreadPoolWorkerThreadAdjustmentSample

Le tableau suivant indique le mot clé et le niveau.

Mot clé destiné à déclencher l'événement.

Niveau

ThreadingKeyword (0x10000)

Informations (4)

Le tableau suivant indique les informations d'événement.

Événement

ID d'événement

Description

ThreadPoolWorkerThreadAdjustmentSample

54

Fait référence à la collecte d'informations pour un exemple ; autrement dit, une mesure de débit avec un certain niveau d'accès concurrentiel, à un moment donné.

Le tableau suivant répertorie les données d'événement.

Nom du champ

Type de données

Description

Throughput

win:Double

Nombre d'achèvements par unité de temps.

ClrInstanceID

Win:UInt16

ID unique pour l'instance de CLR ou CoreCLR.

ThreadPoolWorkerThreadAdjustmentAdjustment

Le tableau suivant indique le mot clé et le niveau.

Mot clé destiné à déclencher l'événement.

Niveau

ThreadingKeyword (0x10000)

Informations (4)

Le tableau suivant indique les informations d'événement.

Événement

ID d'événement

Description

ThreadPoolWorkerThreadAdjustmentAdjustment

55

Enregistre une modification dans le contrôle, lorsque l'algorithme d'injection de thread (tel que le « hill-climbing ») détermine qu'une modification du niveau d'accès concurrentiel s'est produite.

Le tableau suivant répertorie les données d'événement.

Nom du champ

Type de données

Description

AverageThroughput

win:Double

Débit moyen d'un exemple de mesures.

NewWorkerThreadCount

win:UInt32

Nouveau nombre de threads de travail actifs.

Motif

win:UInt32

Raison de l'ajustement.

0x00 - Préchauffage.

0x01 - Initialisation.

0x02 - Déplacement aléatoire.

0x03 - Déplacement vers le haut.

0x04 - Point de changement.

0x05 - Stabilisation.

0x06 - Privation.

0x07 - Thread expiré.

ClrInstanceID

Win:UInt16

ID unique pour l'instance de CLR ou CoreCLR.

ThreadPoolWorkerThreadAdjustmentStats

Le tableau suivant indique le mot clé et le niveau.

Mot clé destiné à déclencher l'événement.

Niveau

ThreadingKeyword (0x10000)

Informations (4)

Le tableau suivant indique les informations d'événement.

Événement

ID d'événement

Description

ThreadPoolWorkerThreadAdjustmentStats

56

Rassemble des données sur le pool de threads.

Le tableau suivant répertorie les données d'événement.

Nom du champ

Type de données

Description

Durée

win:Double

Durée, en secondes, pendant laquelle ces statistiques ont été collectées.

Throughput

win:Double

Nombre moyen d'achèvements par seconde au cours de cet intervalle.

ThreadWave

win:Double

Réservé à une utilisation interne.

ThroughputWave

win:Double

Réservé à une utilisation interne.

ThroughputErrorEstimate

win:Double

Réservé à une utilisation interne.

AverageThroughputErrorEstimate

win:Double

Réservé à une utilisation interne.

ThroughputRatio

win:Double

Amélioration relative du débit provoquée par les variations du nombre de threads de travail actifs au cours de cet intervalle.

Confidence

win:Double

Mesure de la validité du champ ThroughputRatio.

NewcontrolSetting

win:Double

Nombre de threads de travail actifs qui serviront de ligne de base pour les futures variations du nombre de threads actifs.

NewThreadWaveMagnitude

Win:UInt16

Importance des futures variations du nombre de threads actifs.

ClrInstanceID

Win:UInt16

ID unique pour l'instance de CLR ou CoreCLR.

Retour au début

Événements de thread d'E/S

Ces événements de pool de threads se produisent pour les threads du pool de threads d'E/S (ports de terminaison), qui est asynchrone.

IOThreadCreate_V1

Le tableau suivant indique le mot clé et le niveau.

Mot clé destiné à déclencher l'événement.

Niveau

ThreadingKeyword (0x10000)

Informations (4)

Le tableau suivant indique les informations d'événement.

Événement

ID d'événement

Déclenché lorsque

IOThreadCreate_V1

44

Un thread d'E/S est créé dans le pool de threads.

Le tableau suivant répertorie les données d'événement.

Nom du champ

Type de données

Description

Count

win:UInt64

Nombre de threads d'E/S, y compris le nouveau thread.

NumRetired

win:UInt64

Nombre de threads de travail retirés.

ClrInstanceID

Win:UInt16

ID unique pour l'instance de CLR ou CoreCLR.

IOThreadRetire_V1

Le tableau suivant indique le mot clé et le niveau.

Mot clé destiné à déclencher l'événement.

Niveau

ThreadingKeyword (0x10000)

Informations (4)

Le tableau suivant indique les informations d'événement.

Événement

ID d'événement

Déclenché lorsque

IOThreadRetire_V1

46

Un thread d'E/S devient candidat au retrait.

Le tableau suivant répertorie les données d'événement.

Nom du champ

Type de données

Description

Count

win:UInt64

Nombre de threads d'E/S restant dans le pool de threads.

NumRetired

win:UInt64

Nombre de threads d'E/S retirés.

ClrInstanceID

Win:UInt16

ID unique pour l'instance de CLR ou CoreCLR.

IOThreadUnretire_V1

Le tableau suivant indique le mot clé et le niveau.

Mot clé destiné à déclencher l'événement.

Niveau

ThreadingKeyword (0x10000)

Informations (4)

Le tableau suivant indique les informations d'événement.

Événement

ID d'événement

Déclenché lorsque

IOThreadUnretire_V1

47

Un thread d'E/S n'est pas retiré en raison d'une E/S qui se produit au cours d'une période d'attente après que le thread est devenu candidat au retrait.

Le tableau suivant répertorie les données d'événement.

Nom du champ

Type de données

Description

Count

win:UInt64

Nombre de threads d'E/S dans le pool de threads, celui-ci compris.

NumRetired

win:UInt64

Nombre de threads d'E/S retirés.

ClrInstanceID

Win:UInt16

ID unique pour l'instance de CLR ou CoreCLR.

IOThreadTerminate

Le tableau suivant indique le mot clé et le niveau.

Mot clé destiné à déclencher l'événement.

Niveau

ThreadingKeyword (0x10000)

Informations (4)

Le tableau suivant indique les informations d'événement.

Événement

ID d'événement

Déclenché lorsque

IOThreadTerminate

45

Un thread d'E/S est créé dans le pool de threads.

Le tableau suivant répertorie les données d'événement.

Nom du champ

Type de données

Description

Count

win:UInt64

Nombre de threads d'E/S restant dans le pool de threads.

NumRetired

win:UInt64

Nombre de threads d'E/S retirés.

ClrInstanceID

Win:UInt16

ID unique pour l'instance de CLR ou CoreCLR.

Retour au début

Voir aussi

Concepts

Événements ETW du CLR