執行緒集區 ETW 事件
這些事件會收集背景工作執行緒和 I/O 執行緒的相關資訊。
執行緒集區事件共可分兩組:
背景工作執行緒集區事件:提供有關應用程式如何使用執行緒集區,以及工作負載對並行存取控制之影響的資訊。
I/O 執行緒集區事件:提供有關執行緒集區中所建立、停用、取消停用或終止之 I/O 執行緒集區的資訊。
背景工作執行緒集區事件
這些事件與執行階段的背景工作執行緒集區有關,可提供執行緒事件 (例如建立或停止執行緒) 的通知。 背景工作執行緒集區會使用適應性演算法來進行並行控制,其中執行緒的數目是根據測量的輸送量計算而得。 背景工作執行緒集區事件可用來了解應用程式如何使用執行緒集區,以及特定工作負載可能對並行控制所造成的影響。
ThreadPoolWorkerThreadStart 和 ThreadPoolWorkerThreadStop
下表顯示這些事件的關鍵字和層級 如需詳細資訊,請參閱 CLR ETW 關鍵字和層級。
引發事件的關鍵字 |
層級 |
---|---|
ThreadingKeyword (0x10000) |
告知性 (4) |
下表顯示事件資訊。
事件 |
事件識別碼 |
引發時機 |
ThreadPoolWorkerThreadStart |
50 |
建立背景工作執行緒。 |
ThreadPoolWorkerThreadStop |
51 |
停止背景工作執行緒。 |
ThreadPoolWorkerThreadRetirementStart |
52 |
背景工作執行緒停用。 |
ThreadPoolWorkerThreadRetirementStop |
53 |
停用的背景工作執行緒再次變成使用中。 |
下表顯示事件資料。
欄位名稱 |
資料型別 |
說明 |
---|---|---|
ActiveWorkerThreadCount |
win:UInt32 |
可用來處理工作的背景工作執行緒數目,包括已經在處理工作的執行緒。 |
RetiredWorkerThreadCount |
win:UInt32 |
無法用來處理工作,但是正處於保留狀態以免之後需要更多執行緒的背景工作執行緒數目。 |
ClrInstanceID |
Win:UInt16 |
CLR 或 CoreCLR 執行個體的唯一 ID。 |
ThreadPoolWorkerThreadAdjustment
這些執行緒集區事件會提供一些資訊,可讓您了解和偵錯執行緒插入 (並行控制) 演算法的行為。 這項資訊是由背景工作執行緒集區在內部使用。
ThreadPoolWorkerThreadAdjustmentSample
下表顯示關鍵字和層級。
引發事件的關鍵字 |
層級 |
---|---|
ThreadingKeyword (0x10000) |
告知性 (4) |
下表顯示事件資訊。
事件 |
事件識別碼 |
說明 |
---|---|---|
ThreadPoolWorkerThreadAdjustmentSample |
54 |
表示收集單一範例的資訊。亦即,具有特定並行層級之輸送量的瞬間測量。 |
下表顯示事件資料。
欄位名稱 |
資料型別 |
說明 |
---|---|---|
Throughput |
win:Double |
每個時間單位的完成數目。 |
ClrInstanceID |
Win:UInt16 |
CLR 或 CoreCLR 執行個體的唯一 ID。 |
ThreadPoolWorkerThreadAdjustmentAdjustment
下表顯示關鍵字和層級。
引發事件的關鍵字 |
層級 |
---|---|
ThreadingKeyword (0x10000) |
告知性 (4) |
下表顯示事件資訊。
事件 |
事件識別碼 |
說明 |
---|---|---|
ThreadPoolWorkerThreadAdjustmentAdjustment |
55 |
當執行緒插入 (攀登) 演算法判斷並行層級就地變更時,記錄控制中的變更。 |
下表顯示事件資料。
欄位名稱 |
資料型別 |
說明 |
---|---|---|
AverageThroughput |
win:Double |
測量範例的平均輸送量。 |
NewWorkerThreadCount |
win:UInt32 |
使用中背景工作執行緒的新數目。 |
Reason |
win:UInt32 |
調整的原因。 0x00 - 熱身。 0x01 - 初始化。 0x02 - 隨機移動。 0x03 - 攀登移動。 0x04 - 變更點。 0x05 - 穩定。 0x06 - 資源不足。 0x07 - 執行緒逾時。 |
ClrInstanceID |
Win:UInt16 |
CLR 或 CoreCLR 執行個體的唯一 ID。 |
ThreadPoolWorkerThreadAdjustmentStats
下表顯示關鍵字和層級。
引發事件的關鍵字 |
層級 |
---|---|
ThreadingKeyword (0x10000) |
告知性 (4) |
下表顯示事件資訊。
事件 |
事件識別碼 |
描述 |
---|---|---|
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。 |
回到頁首
I/O 執行緒事件
這些執行緒集區事件會針對非同步 I/O 執行緒集區 (完成連接埠) 中的執行緒發生。
IOThreadCreate_V1
下表顯示關鍵字和層級。
引發事件的關鍵字 |
層級 |
---|---|
ThreadingKeyword (0x10000) |
告知性 (4) |
下表顯示事件資訊。
事件 |
事件識別碼 |
引發時機 |
IOThreadCreate_V1 |
44 |
在執行緒集區中建立 I/O 執行緒時。 |
下表顯示事件資料。
欄位名稱 |
資料型別 |
說明 |
---|---|---|
Count |
win:UInt64 |
I/O 執行緒的數目,包括新建立的執行緒。 |
NumRetired |
win:UInt64 |
已停用背景工作執行緒的數目。 |
ClrInstanceID |
Win:UInt16 |
CLR 或 CoreCLR 執行個體的唯一 ID。 |
IOThreadRetire_V1
下表顯示關鍵字和層級。
引發事件的關鍵字 |
層級 |
---|---|
ThreadingKeyword (0x10000) |
告知性 (4) |
下表顯示事件資訊。
事件 |
事件識別碼 |
引發時機 |
---|---|---|
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) |
下表顯示事件資訊。
事件 |
事件識別碼 |
引發時機 |
---|---|---|
IOThreadUnretire_V1 |
47 |
當 I/O 執行緒由於 I/O 在執行緒變成停用候選之後的等候期間內送達而取消停用時。 |
下表顯示事件資料。
欄位名稱 |
資料型別 |
說明 |
---|---|---|
Count |
win:UInt64 |
執行緒集區中的 I/O 執行緒數目,包括這個執行緒。 |
NumRetired |
win:UInt64 |
已停用 I/O 執行緒的數目。 |
ClrInstanceID |
Win:UInt16 |
CLR 或 CoreCLR 執行個體的唯一 ID。 |
IOThreadTerminate
下表顯示關鍵字和層級。
引發事件的關鍵字 |
層級 |
---|---|
ThreadingKeyword (0x10000) |
告知性 (4) |
下表顯示事件資訊。
事件 |
事件識別碼 |
引發時機 |
---|---|---|
IOThreadTerminate |
45 |
在執行緒集區中建立 I/O 執行緒時。 |
下表顯示事件資料。
欄位名稱 |
資料型別 |
說明 |
---|---|---|
Count |
win:UInt64 |
執行緒集區中剩餘的 I/O 執行緒數目。 |
NumRetired |
win:UInt64 |
已停用 I/O 執行緒的數目。 |
ClrInstanceID |
Win:UInt16 |
CLR 或 CoreCLR 執行個體的唯一 ID。 |
回到頁首