.NET 运行时线程池事件

本文中所述的事件收集有关线程池中的辅助角色和 I/O 线程的信息。 有关如何将这些事件用于诊断目的的详细信息,请参阅 日志记录和跟踪 .NET 应用程序

IOThreadCreate_V1 事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID
IOThreadCreate_V1 44 在线程池中创建 I/O 线程。

下表显示了事件数据。

字段名称 数据类型 描述
Count win:UInt64 I/O 线程数,包括新创建的线程。
NumRetired win:UInt64 已停用的工作线程数。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

IOThreadTerminate_V1事件

下表显示了关键字和级别

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID
IOThreadTerminate 45 I/O 线程在线程池中终止。

下表显示了事件数据。

字段名称 数据类型 描述
Count win:UInt64 线程池中剩余的 I/O 线程数。
NumRetired win:UInt64 已停用的 I/O 线程数。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

IOThreadRetire_V1事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID
IOThreadRetire_V1 46 I/O 线程将成为退休候选人。

下表显示了事件数据。

字段名称 数据类型 描述
Count win:UInt64 线程池中剩余的 I/O 线程数。
NumRetired win:UInt64 已停用的 I/O 线程数。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

IOThreadUnretire_V1事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID
IOThreadUnretire_V1 47 由于 I/O 在线程成为停用候选项后在等待期间内到达,因此 I/O 线程未完成。

下表显示了事件数据。

字段名称 数据类型 描述
Count win:UInt64 线程池中的 I/O 线程数,包括此线程。
NumRetired win:UInt64 已停用的 I/O 线程数。
ClrInstanceID Win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

ThreadPoolWorkerThreadStart 事件

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)
事件 事件 ID 描述
ThreadPoolWorkerThreadStart 50 创建工作线程。
字段名称 数据类型 描述
ActiveWorkerThreadCount win:UInt32 可用于处理工作的工作线程数,包括已处理工作的线程数。
RetiredWorkerThreadCount win:UInt32 无法处理工作但保留的工作线程数,以防以后需要更多线程。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

ThreadPoolWorkerThreadStop 事件

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)
事件 事件 ID 描述
ThreadPoolWorkerThreadStop 51 辅助角色线程已停止。
字段名称 数据类型 描述
ActiveWorkerThreadCount win:UInt32 可用于处理工作的工作线程数,包括已处理工作的线程数。
RetiredWorkerThreadCount win:UInt32 无法处理工作但保留的工作线程数,以防以后需要更多线程。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

ThreadPoolWorkerThreadWait 事件

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)
事件 事件 ID 描述
ThreadPoolWorkerThreadWait 57 工作线程开始等待工作。
字段名称 数据类型 描述
ActiveWorkerThreadCount win:UInt32 可用于处理工作的工作线程数,包括已处理工作的线程数。
RetiredWorkerThreadCount win:UInt32 无法处理工作但保留的工作线程数,以防以后需要更多线程。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

ThreadPoolWorkerThreadRetirementStart 事件

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)
事件 事件 ID 描述
ThreadPoolWorkerThreadRetirementStart 52 工作线程停用。
字段名称 数据类型 描述
ActiveWorkerThreadCount win:UInt32 可用于处理工作的工作线程数,包括已处理工作的线程数。
RetiredWorkerThreadCount win:UInt32 无法处理工作但保留的工作线程数,以防以后需要更多线程。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

ThreadPoolWorkerThreadRetirementStop 事件

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)
事件 事件 ID 描述
ThreadPoolWorkerThreadRetirementStop 53 停用的工作线程再次处于活动状态。
字段名称 数据类型 描述
ActiveWorkerThreadCount win:UInt32 可用于处理工作的工作线程数,包括已处理工作的线程数。
RetiredWorkerThreadCount win:UInt32 无法处理工作但保留的工作线程数,以防以后需要更多线程。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

ThreadPoolWorkerThreadAdjustmentSample 事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID 描述
ThreadPoolWorkerThreadAdjustmentSample 54 指一个示例的信息集合;也就是说,在一瞬间测量具有特定并发级别的吞吐量。

下表显示了事件数据。

字段名称 数据类型 描述
Throughput win:Double 每个单位时间的完成次数。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

ThreadPoolWorkerThreadAdjustmentAdjustment 事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID 描述
ThreadPoolWorkerThreadAdjustmentAdjustment 55 记录控制更改,当线程注入(爬山)算法确定并发级别的更改已到位时。

下表显示了事件数据。

字段名称 数据类型 描述
AverageThroughput win:Double 测量样本的平均吞吐量。
NewWorkerThreadCount win:UInt32 新的活动工作线程数。
Reason win:UInt32 调整的原因。

0x0 - 预热。

0x1 - 初始化。

0x2 - 随机移动。

0x3 - 攀岩移动。

0x4 - 更改点。

0x5 - 稳定。

0x6 - 饥饿。

0x7 - 线程超时。

0x8 - 协作阻止。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

ThreadPoolWorkerThreadAdjustmentStats 事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 详细 (5)

下表显示了事件信息。

事件 事件 ID 描述
ThreadPoolWorkerThreadAdjustmentStats 56 在线程池上收集数据。

下表显示了事件数据

字段名称 数据类型 描述
Duration win:Double 收集这些统计信息的时间(以秒为单位)。
Throughput win:Double 此间隔期间每秒的平均完成次数。
ThreadWave win:Double 保留供内部使用。
ThroughputWave win:Double 保留供内部使用。
ThroughputErrorEstimate win:Double 保留供内部使用。
AverageThroughputErrorEstimate win:Double 保留供内部使用。
ThroughputRatio win:Double 此间隔期间活动工作线程计数变化导致吞吐量的相对改善。
Confidence win:Double ThroughputRatio 字段有效性的度量值。
NewcontrolSetting win:Double 用作活动线程计数中未来变化的基线的活动工作线程数。
NewThreadWaveMagnitude win:UInt16 活动线程计数中未来变化的大小。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 实例的唯一 ID。

ThreadPoolEnqueue 事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 详细 (5)

下表显示了事件信息。

事件 事件 ID 描述
ThreadPoolEnqueue 61 线程池队列中已排队工作项。

下表显示了事件数据

字段名称 数据类型 描述
WorkID win:Pointer 指向工作请求的指针。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

ThreadPoolDequeue 事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 详细 (5)

下表显示了事件信息。

事件 事件 ID 描述
ThreadPoolDequeue 62 工作项已从线程池队列中取消排队。

下表显示了事件数据

字段名称 数据类型 描述
WorkID win:Pointer 指向工作请求的指针。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

ThreadPoolIOEnqueue 事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 详细 (5)

下表显示了事件信息。

事件 事件 ID 描述
ThreadPoolIOEnqueue 63 发生异步 IO 完成后,线程将 IO 完成通知排入队列。

下表显示了事件数据

字段名称 数据类型 描述
NativeOverlapped win:Pointer 保留供内部使用。
Overlapped win:Pointer 保留供内部使用。
MultiDequeues win:Boolean 保留供内部使用。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

ThreadPoolIODequeue 事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 详细 (5)

下表显示了事件信息。

事件 事件 ID 描述
ThreadPoolIODequeue 64 线程取消排队 IO 完成通知。

下表显示了事件数据

字段名称 数据类型 描述
NativeOverlapped win:Pointer 保留供内部使用。
Overlapped win:Pointer 保留供内部使用。
MultiDequeues win:Boolean 保留供内部使用。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

ThreadPoolIOPack 事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 详细 (5)

下表显示了事件信息。

事件 事件 ID 描述
ThreadPoolIOPack 65 调用 ThreadPool 重叠的 IO 包。

下表显示了事件数据

字段名称 数据类型 描述
NativeOverlapped win:Pointer 保留供内部使用。
Overlapped win:Pointer 保留供内部使用。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

ThreadCreating 事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID 描述
ThreadCreating 70 已创建线程。

下表显示了事件数据。

字段名称 数据类型 描述
ID win:Pointer 线程 ID
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

ThreadRunning 事件

下表显示了关键字和级别。

引发事件的关键字 水平
ThreadingKeyword(0x10000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID 描述
ThreadRunning 71 线程已开始运行。

下表显示了事件数据。

字段名称 数据类型 描述
ID win:Pointer 线程 ID
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。