É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